Рубрика «С++» - 27

На хабре уже было несколько статей про lock-free алгоритмы. Этот пост — это перевод статьи моего коллеги, которую мы планируем публиковать в нашем корпоративном блоге. По роду деятельности мы пишем огромное количество lock-free алгоритмов и структур данных, и этой статьей хочется показать, насколько это интересно и сложно одновременно.

Эта статья во многом похожа на эту статью, но в той статье рассматриваются не все проблемы, с которыми можно столкнуться, разрабатывая lock-free структуры данных, и уделяется очень мало внимания решению этих проблем. В этой статье хочется детально остановиться на некоторых решениях, которые мы используем в реальной реализации lock-free структур данных в нашем продукте, и больше внимания уделить оценке производительности.
Читать полностью »

Генератор абстракций (видеообзор)

Привет!
Не для широких масс, но для любителей программирования и графики решился я опубликовать сей пост.
image
Читать полностью »

image

О чем эта статья

Сегодня я расскажу про библиотеку Boost Signals — про сигналы, слоты, соединения, и как их использовать.

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

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

Не знаю как у вас, но у меня обычно, когда мне нужно, что то написать с нуля начинается лихорадка, приступ синдрома Дауна и полная прострация в мыслях. В голове уже летают различные абстрактные модели, что от чего и куда. Но ни за одну из них ухватиться не получается, потому что перед тобой чистый лист и вырвав из головы одну мысль, применить ее не к чему, а вытащить весь скелет не получается потому, что ты уже думаешь о решении задачи, а тебе еще только нужно написать костяк приложения.

Ниже представлен «проект NULL», тот самый костяк, с которого обычно все и начинается. У меня.

Данный пост скорее всего не будет интересен тем кто уже матерый и тем кто на прямую не связан с разработкой на С++, т.к. ниже представленные материл несет одну единственную цель — дать готовый фундамент для начала.
Читать полностью »

Думаю, что документ на который наткнулся будет также полезен и другим программистам.

Мне давно хотелось иметь все STL-контейнеры и их методы в более наглядном и удобном виде. До сего момента я не знал о том, что на известном ресурсе посвященном С++ cppreference.com выложен полезный PDF-файл содержащий в себе как раз то что мне надо. Вот прямая ссылка на container-library-overview-2012-12-27.

В этом документе учтены как C++03, так и C+11. Оба помечены разными цветами, что достаточно быстро дает понять с какой версии стандарта доступен тот или иной контейнер.

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

Давно хотел написать полезную статью и вот наконец нашёл подходящий информационный повод.

Речь в этой статье пойдёт о создании примитивного web сервера работающего по https протоколу. Мы на пишем серверную часть, а в качестве клиентской части будет выступать любой из браузеров.
В итоге мы получим максимально упрощённый пример примитивного web сервера который можно будет улучшать и затачивать под свои задачи.
Читать полностью »

Недавно столкнулся с явлением, которое, хотя и хорошо объясняется, но, по крайней мере для меня, не тривиально. Сразу приношу извинения тем, для кого приведенные далее вещи очевидны. Возьмем код:
Читать полностью »

Так получилось, что недавно на работе мне понадобилось портировать старенькое нативное приложение под Android. Приложение написано в основном на C/C++. Захотелось мне это проделать грамотно и цивилизованно. Собственно об этом под катом
Читать полностью »

Добрый день.
Будем делать расширение Visual Studio, которое встраивает в контекстное меню редактора поле «Create C++ Header #define», при клике на которое генерируется уникальная директива #define (директива позволяет включать header только один раз).
В конечном счете выглядеть это будет следующим образом:

Создаем расширение (extension) Visual Studio для генерирования C++ директивы #define в header файле

На самом деле обычно это автоматизируется с помощью макросов самой студии ( и вариантов макросов в сети много), но мне приятнее использовать контекстное меню, тем более что создание самого расширения — это дело простое, всю работу сделает VSPackage Builder, нам останется лишь вписать несколько строчек кода в обработчик нажатия элемента меню.

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

Что такое TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR (итд)

Многие C++ программисты, пишущие под Windows часто путаются над этими странными идентификаторами как TCHAR, LPCTSTR. В этой статье я попытаюсь наилучшим способом расставить все точки над И. И рассеять туман сомнений.

В свое время я потратил много времени копаясь в исходниках и не понимал что значат эти загадочные TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR.
Недавно нашел очень грамотную статью и представляю ее качественный перевод.
Статья рекомендуется тем кто бессонными ночами копошиться в кодах С++.

Вам интересно ??
Прошу под кат!!!
Читать полностью »


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