Найти в Дзене
Нетривиальные возможности C++

Нетривиальные возможности C++

Здесь собраны статьи по практическому применению различных тонкостей С++ для написания эффективных программ
подборка · 3 материала
3 недели назад
Введение в шаблонную магию С++
Наверное каждый программист на С++ слышал выражение "магия шаблонов" или "шаблонная магия". Сегодня начнем разбираться в том, что же она из себя представляет. "Магия" — это использование механизма шаблонов (template) для вычислений, проверок и трансформации кода на этапе компиляции, а не во время выполнения программы. Программисты называют это "магией", потому что сложный шаблонный код заставляет компилятор выполнять полноценные логические операции (ветвления, эмуляцию циклов через рекурсию) ещё до запуска программы...
4 месяца назад
Всё что вы хотели знать об умных указателях в С++
Сегодня поговорим об использовании интеллектуальных указателей в реальных проектах. Разберем вопросы о том каковы основные сценарии использования weak_ptr в паре с shared_ptr, как устроены shared_ptr и weak_ptr "под капотом", изучим накладные расходы при использовании shared_ptr и weak_ptr, а также большое количество связанных с этим проблем. Предполагается наличие у читателя предварительных знаний о назначении интеллектуальных указателей. Использование std::weak_ptr вместе с std::shared_ptr —...
4 месяца назад
Применяем пользовательские типы для предотвращения ошибок в передаче параметров в С++
Допустим что перед нами стоит задача разработать тип данных, задающий положение на плоскости некторой точки, например, персонажа компьютерной игры. Первый вариант может выглядеть следующим образом: class Coord { int x_, y_; public: Coord(int x, int y) : x_(x), y_(y) {} //далее идут методы для работы с координатами }; Несмотря на крайнюю простоту, при использовании Coord может возникнуть проблема, связанная с тем, что оба параметра конструктора имеют один и тот же тип. Следовательно, передаваемые...