Рубрика «c++» - 181

Содержание курса

Данная статья написана в тесном сотрудничестве (спасибо создателям XMPP) с haqreu, автором данного курса.Мы начали масштабный рефакторинг кода, направленный на достижение максимальной компактности и читаемости. Мы сознательно пошли на отказ от ряда возможных и даже очевидных оптимизаций для получения максимально доступного для понимания кода учебных примеров.
P. S haqreu буквально на днях выложит статью о шейдерах!
Читать полностью »

Аннотация к «Effective Modern C++» Скотта Майерса - 1
Пару месяцев назд Скотт Майерс (Scott Meyers) выпустил новую книгу Effective Modern C++. Последние годы он безусловно является писателем №1 «про это», кроме того он блестящий лектор и каждая его новая книга просто обречена быть прочитана пишущими на С++. Более того, именно такую книгу я ждал давно, вышел стандарт С++11, за ним С++14, уже виднеется впереди С++17, язык стремительно меняется, однако нигде так и не были описаны все изменения в целом, взаимосвязи между ними, опасные места и рекомендуемые паттерны.
Тем не менее, регулярно просматривая Хабр, я так и не нашел публикации о новой книге, похоже придется писать самому. На полноценный перевод меня конечно не хватит, поэтому я решил сделать краткую выжимку, скромно назвав ее аннотацией. Еще я взял на себя смелость перегруппировать материал, мне кажется для короткого пересказа такой порядок подходит лучше. Все примеры кода взяты прямо из книги, изредка с моими дополнениями.
Читать полностью »

Основным паттерном при разработке UI приложений для Windows Runtime является MVVM. В документации говорится, что объектом привязки может быть объект CLR, объект пользовательского интерфейса, объект среды выполнения Windows Runtime(если у него есть атрибут BindableAttribute или если он реализует ICustomPropertyProvider).
Наиболее простым сценарием при разработке приложений является добавление атрибута BindableAttribute к классу ViewModel и реализация интерфейса INotifyPropertyChanged. Если интересно, как это сделать с помощью MIDL, C++ и WRL, то добро пожаловать под кат.
Читать полностью »

Выдалась свободная суббота, решил перевести впечатлившую меня накануне инфографику. Пока лучшее, на мой взгляд, пособие по выбору первого языка программирования из всех, что я видел. Картинка кликабельная.

Какой язык программирования выбрать начинающему (инфографика) - 1

Читать полностью »

C++ Twitter
Эта маленькая заметка для тех программистов, которые используют Twitter или собираются начать использовать. Уверен, разработчики смогут найти в ней кое-что полезное для себя.
Читать полностью »

День добрый,

CMakeProjectManager2 — это форк оригинального плагина Qt Creator для поддержки работы с системой сборки CMake. Вялая история развития этого проекта идёт с 2011 года (первая моя заметка в блоге: htrd.su/wiki/zhurnal/2011-03-24_14.49_qt_creator_i_cmake_-_prodolzhenie, второе обновление от 2012 года: htrd.su/wiki/zhurnal/2012/10/17/cmakeprojectmanager2_-_poslednie_izmenenija). С тех пор ничего нового не добавлялось. Обеспечивалась совместимость с последними версиями Qt Creator, репозиторий переехал на GitHub (в качестве эксперимента).

Но за вчера и сегодня добавилось ещё несколько изменений, что и стало поводом упомянуть проект на Хабре.
Читать полностью »

Нечто невообразимое творится в мире разработки: популярные программы, фундаментальные библиотеки выкладываются в open source. У обычных разработчиков появляется возможность вносить изменения в известные продукты. Вот и я, устав от ежедневной рутины, решил попробовать что-то новое, почувствовать полёт творческой мысли и приобщиться к великому. Говоря более простым языком, решил подключиться к какому-либо open source проекту.

Почему именно open source? Меня привлекает:

  • отсутствие строгих сроков разработки;
  • свободный выбор задач;
  • свободный выбор способа реализации задач;
  • возможность внести свои изменения в популярный продукт.

В этой статье я хотел бы описать первый опыт работы с двумя проектами: Media Player Classic — Home Cinema и SharpDevelop. Хотелось бы дать общие рекомендации по работе с open source проектом на начальном этапе. Статья не содержит полноценного анализа исходного кода или рекламы новой функциональности, в ней описаны лишь первые впечатления о работе с проектами. Возможно, статья привлечет внимание разработчиков к описанным в ней проектам и к разработке open source в целом.
Читать полностью »

Всем привет,

Как вы знаете, JetBrains сейчас активно ведет разработку сразу нескольких продуктов, поддерживающих языки С и С++. ReSharper C++ и CLion сейчас пока находятся в стадии ранней программы тестирования (Early Access Program), а в AppCode мы не только добавляем функции для работы с новым языком Swift, но и активно дорабатываем поддержку С и С++.

27-28 февраля 2015 в Москве пройдет первая в своем роде конференция C++ Russia, организованная сообществом C++ User Group Russia. Нас ждет множество отличных докладов на самые разнообразные темы из мира С++.

Читать полностью »

Приветствую всех читателей!

Спешу сообщить о выпуске CrystaX NDK 10.1 — набора инструментов для разработки на C/C++ (и Objective-C) под Android.

CrystaX NDK разработан как прозрачная замена для Android NDK от Google, но при этом добавляет немало вкусностей, отсутствующих в оригинальном NDK. Прежде всего, это означает, что CrystaX NDK можно использовать вместо Google NDK, и все будет продолжать работать как раньше. Но при этом станут доступными многие вещи, отсутствующие в Google NDK.

В этом релизе мы проделали немалую работу по обеспечению большей совместимости со стандартами ISO C, ISO C++ и IEEE Std 1003.1 (POSIX), благодаря чему портирование существующего кода на Android становится намного легче. Как вы, быть может, знаете, Android libc (Bionic) далека от того, чтоб соответствовать указанным стандартам. Многие части просто не реализованы, другие — реализованы с ошибками, заставляющими провести в отладке долгие часы, тем более что уж от libc этого не ожидаешь (помню до сих пор, как пришлось отлаживатся два дня, прежде чем выяснилось, что strtod() не умеет парсить «0xXXXX» строки). Конечно, со временем ситуация улучшается, и в новых версиях Android libc потихоньку исправляется и дополняется, но а) темпы исправлений и дополнений абсолютно неудовлетворительны и б) что делать разработчикам, программы которых должны работать не только на последних, но и на предыдущих версиях Android?

Читать полностью »

Приветствую Хабр, и всех его многочисленных обитателей!

Сразу оговорюсь, что то о чём здесь пойдет речь не очень рассчитано на новичков, тем не менее если есть интерес и тяга к изучению, напротив — прошу познать.

А в этот раз, речь пойдет о реализации гибридного ШИМ, которых наплодилось в сети уже множество. Так что думаю еще один, или два, или три (бонусом), будут не лишними или не будут лишними.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js