В этой статье описывается каким образом изменения, принесенные стандартом С++14 отразились или могут отразиться на разработке Qt приложений. Данная статья ориентирована не только на Qt программистов, но также на всех тех, кому интересно развитие С++. Автор оригинала — Olivier Goffart, являющийся одним из разработчиков Qt moc (meta-object compiler).
Читать полностью »
Рубрика «c++» - 187
Проект Miranda NG получает приз «дикие указатели» (часть первая)
2014-11-25 в 7:43, admin, рубрики: c++, pvs-studio, Блог компании PVS-Studio, дикие указатели, обзор кода, ошибки в коде, разработка под windows, статический анализ кода
Я добрался до проекта Miranda NG и проверил его с помощью анализатора кода PVS-Studio. К сожалению, с точки зрения работы с памятью и указателями это самый неаккуратный проект из виданных мной. Хотя я внимательно не анализировал результаты, ошибок столь много, что я решил разбить собранный материал на 2 статьи. Первая статья будет посвящена указателям, а вторая всему остальному. Желаю приятного чтения, и не забудьте взять попкорн.
Читать полностью »
Рефакторинг C++ кода в Visual Studio 2015
2014-11-18 в 8:29, admin, рубрики: c++, Visual Studio, Блог компании Инфопульс Украина, Проектирование и рефакторингHello C++ World!
В прошлую пятницу вышел релиз Visual Studio 2015 Preview, в котором были представлены новые возможности увеличения продуктивности разработки, в том числе рефакторинг кода на С++. В значительной мере на реализацию этого функционала повлияли отзывы комьюнити, которые были получены в ходе тестирования Visual Studio «14» CTPs, так что спасибо всем поучаствовавшим.
В этой статье мы рассмотрим такие возможности Visual Studio 2015 Preview по работе над С++ кодом, как:
- Переименование (Rename)
- Извлечение функции (Extract Function)
- Генерация заглушек чисто виртуальных методов (Implement Pure Virtuals)
- Генерация объявлений/заглушек методов (Create Declaration/Definition)
- Перемещение объявлений функций (Move Function Definition)
- Преобразование в Raw-String (Convert to Raw-String Literal)
Proxygen — HTTP-фреймворк для С++ от Facebook
2014-11-14 в 9:09, admin, рубрики: c++, http, Блог компании Инфопульс Украина, Сетевые технологииProxygen — это коллекция библиотек для использования протокола HTTP на С++, включающая в числе прочего очень простой в использовании HTTP-сервер. Кроме классического HTTP/1.1 фреймворк Proxygen поддерживает SPDY/3 и SPDY/3.1. Вскоре также будет полностью поддерживаться HTTP/2.
Proxygen не задумывался как замена Apache или nginx — эти проекты сфокусированы на создании достаточно гибких и конфигурируемых веб-серверов, позволяющих благодаря тонкой настройке добиться максимальной производительности. Задачей Proxygen является работать достаточно хорошо на дефолтных настройках, давая программисту простые в использовании веб-сервер и веб-клиент, легко интегрирующиеся в уже существующие проекты. Мы хотим помочь людям строить веб-сервисы на С++ с меньшими затратами и мы верим, что Proxygen — отличный фреймворк для этого. Вы можете почитать документацию по нему и подключиться к разработке на Github.
Бесплатный CppCat для студентов
2014-11-13 в 13:04, admin, рубрики: c++, c++/cx, c++11, cppcat, pvs-studio, Visual Studio, Блог компании PVS-Studio, инструменты разработчика, Си, статический анализ кода, халява, халява студентам
CppCat – это статический анализатор кода, интегрирующийся в среду Visual Studio 2010-2013. Анализатор предназначен для регулярного использования и позволяет выявить множество ошибок и опечаток в программах на языке Си и Си++. С целью его популяризации мы решили выдавать бесплатные лицензии всем студентам, которые к нам обратятся. Достаточно прислать фотографию студенческого билета или зачётной книжки.
Читать полностью »
Новый механизм подавления ненужных сообщений анализатора
2014-11-13 в 8:31, admin, рубрики: c++, developer tools, pvs-studio, static analysis, Блог компании PVS-Studio
На данный момент анализатор PVS-Studio уже имеет механизм для подавления ложных срабатываний (False Positive). Этот механизм полностью устраивает нас с функциональной точки зрения, т.е. у нас нет претензий к надёжности его работы. Однако, у некоторых из наших пользователей и клиентов возникало желание иметь возможность работать с сообщениями анализатора только на «новом», т.е. вновь написанном коде. Это желание вполне можно понять, учитывая, что в крупном проекте анализатор может сгенерировать тысячи или даже десятки тысяч сообщений на существующий код, править которые, конечно, никто не станет.
Был у меня в одном проекте класс-обертка над log4cpp. В один прекрасный день посчитал, что его интерфейс перестал мне нравится, решил немного переделать, потом переделал еще немного. Потом мне пришла мысль, почему бы не использовать обобщенное программирование? И тут завертелось… а нужно мне было только вариативное поведение логирования, то есть, вывод на экран или в файл или еще куда либо в зависимости от выбранного типа.
О том, как память текла, а я не мог понять, почему
2014-11-11 в 17:12, admin, рубрики: c++, DirectX, memory leaks, разработка под windows, разработка под windows phoneЗдравствуйте, уважаемые читатели.
В этом коротком посте я хочу поделиться с вами некоторыми моментами, с которыми столкнулся при разработке одного из своих приложений (читалка для Windows). Речь пойдет о DirectX и, как мне показалось, странных утечках памяти.
Как я создал себе проблему?
Для отображения содержимого страниц я решил использовать DirectX. Задумка была проста: сначала создаю 2D-текстуру с текстом, а потом отображаю 3D модель с использованием подготовленных ранее текстур. Это дает мне возможность делать анимацию 3D перелистывания страниц.
Как-то так:
В момент выпуска приложения в магазин я ожидал всеобщего восхищения. Но не тут-то было. Пользователи оказались недовольны. Анализ ситуации показал, что течет память. И очень хорошо течет. Но почему? Этого я долго не мог понять.
С учетом того, что приложения в Windows 8.1 и Windows Phone 8.1 полностью не выгружаются при «закрытии», утечки памяти накапливались.
Читать полностью »