Как стать автором
Обновить
24
Карма
0
Рейтинг

Программист C++/Scala

OutOfLine – паттерн размещения в памяти для высокопроизводительных приложений на C++

Высокая производительность *C++ *
Перевод

Во время работы в Headlands Technologies мне посчастливилось написать несколько утилит для упрощения создания высокопроизводительного кода на C++. Эта статья предлагает обобщенный обзор одной из этих утилит — OutOfLine.

Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 8.5K
Комментарии 33

Варианты operator<< для логгера

Программирование *C++ *

Уважаемые хабровчане, у меня родилась публикация — вопрос. С удовольствием выслушаю вашу критику в комментариях.


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

Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 7.7K
Комментарии 58

Ленивый список в C++

Ненормальное программирование *C++ *

В Scala есть интересная коллекция — Stream. Контейнер, который представляет собой список, элементы которого вычисляются (и сохраняются после этого) при первом обращении:

The class Stream implements lazy lists where elements are only evaluated when they are needed.

Мне захотелось реализовать нечто подобное на C++.
Что из этого получилось...
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 24K
Комментарии 9

Делаем свой итератор

C++ *
Tutorial
Не часто возникает необходимость создать свой итератор и хотелось бы иметь под рукой небольшой HowTo. В этой заметка хочу рассказать как создать простейший итератор, который можно использовать в стандартных алгоритмах типа std::copy, std::find. Какие методы и определения типов нужны в классе контейнере, чтобы его можно было обходить в циклах for из c++11 и BOOST_FOREACH.

Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 67K
Комментарии 0

Обработка структуры по списку базовых типов

C++ *
Хочу рассказать как мы использовали списки базовых типов для обработки сообщений. Сообщения представляют собой структуры, унаследованные от небольших базовых структур. Вся полезная информация хранится в базовых структурах. Для обработки нужно знать от каких базовых структур было унаследовано обрабатываемое сообщение. Все что нужно для работы со списками типов мы нашли в Boost.MPL. В качестве списка типов выбрали boost::mpl::vector. Для прохода по списку типов boost::mpl::for_each.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 9.8K
Комментарии 4

Специализация шаблона базовым классом

C++ *
Из песочницы
Есть несколько базовых классов, наследники и некоторый шаблонный обработчик, выполняющий какие-то действия с экземпляром наследников. Его поведение зависит от того, какие классы являются базовыми для обрабатываемого класса. Возможный вариант я хочу показать.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 15K
Комментарии 19

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность