Как стать автором
Обновить
31
0
Александр Дубовик @Dubovik_a

С++

Отправить сообщение

Ох уж этот std::make_shared…

Время на прочтение6 мин
Количество просмотров34K
C++ Core Guidelines содержат правило R22, предписывающее использовать std::make_shared вместо вызова конструктора std::shared_ptr. В Core Guidelines приводится всего лишь один аргумент за такое решение — экономия на аллокации (и деаллокации).

А если копнуть чуть глубже?
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии46

Исследование одного неопределённого поведения

Время на прочтение18 мин
Количество просмотров7.3K
В статье исследуются возможные проявления неопределённого поведения, возникающего в c++ при завершении не-void функции без вызова return с подходящим значением. Статья носит больше научно-развлекательный характер, чем практический.

Кому не нравится весело скакать по граблям — проходим мимо, не задерживаемся.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии5

Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби» — разбор полётов

Время на прочтение31 мин
Количество просмотров4.9K
В настоящей статье приводится разбор вариантов устранения антипаттерна «Зомби», описанного в первой части: Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби».
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии36

Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби»

Время на прочтение26 мин
Количество просмотров26K
В статье приводится опасный антипаттерн «Зомби», в некоторых ситуациях естественным образом возникающий при использовании std::enable_shared_from_this. Материал — где-то на стыке техники современного C++ и архитектуры.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии94

Техника избежания неопределённого поведения при обращении к синглтону

Время на прочтение21 мин
Количество просмотров13K
В статье рассмотрены причины возникновения и способы избежания неопределённого поведения при обращении к синглтону в современном c++. Приведены примеры однопоточного кода. Ничего compiler-specific, всё в соответствии со стандартом.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии17

Внимание! Опасный баг в реализации C++ std::map::merge и std::set::merge в Visual Studio 2017

Время на прочтение2 мин
Количество просмотров15K
Если Вы используете стандарт C++17 в MS Visual Studio 2017 — будьте осторожны: текущая версия содержит критический баг в реализации std::map::merge и std::set::merge. Подробности — под катом.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии34

Головоломка по ассоциативным контейнерам STL или Как решить одну задачу восемью очень разными способами

Время на прочтение12 мин
Количество просмотров12K

Введение


В данной статье я хочу рассказать о своих «приключениях» при решении задачи по STL, возникшей в ходе работы над небольшим проектом (C++11, Visual Studio 2015).

На первый взгляд, задача выглядела весьма просто. Но при ближайшем рассмотрении:
— в открытых источниках готового решения не нашлось;
— стандартные ООП-подходы на ней «забуксовали»;
— оказалось, что даже для опытного разработчика задача может представлять сложность.

Я приведу несколько вариантов решения. Часть из них я отбросил до реализации, но некоторые были реально написаны. Из одних примеров можно извлечь пользу только типа «смотри и никогда так не делай», другие же вполне могут найти применение на практике.
Читать дальше →
Всего голосов 38: ↑19 и ↓190
Комментарии35

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Зарегистрирован
Активность