Senior C++ Developer
13K subscribers
1.27K photos
3 videos
575 links
№ 4931128893
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr
Download Telegram
➡️ Ленивая инициализация статического объекта с использованием std::call_once

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

🗣️ Для этого можно использовать std::call_once.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Функции в качестве параметра шаблона

Параметром шаблона могут быть конкретные целые числа.

Параметром шаблона также могут быть конкретные функции.

Это позволяет компилятору встраивать вызовы для этих функций в коде инстанцированного шаблона для более эффективного выполнения.

В примере ниже, функция memoize() в качестве шаблонного параметра получает функцию и вызывает эту функцию для новых значений аргумента.

Старое сохранённое значение аргумента берётся из кеша.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Расширение возможностей с помощью итераторов-адаптеров

Итераторы-адаптеры - это классы, которые оборачивают стандартные итераторы и предоставляют дополнительные возможности или изменяют их поведение.

Итераторы-адаптеры предоставляют дополнительные возможности для работы с итераторами, такие как итерация в обратном порядке или фильтрация элементов.
Использование итераторов-адаптеров позволяет упростить код и делает его более читаемым за счет высокоуровневого интерфейса.
Итераторы-адаптеры добавляют гибкость в работу с контейнерами, позволяя выполнять сложные операции и манипуляции с элементами.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Наследование с помощью private и public

Использование private и public при наследовании в C++ позволяет контролировать доступ к членам базового класса в производных классах.

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

Эта фишка особенно полезна при проектировании классов и их взаимодействия, позволяя более гибко управлять доступом к данным и методам в рамках наследования.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Строго типизированные перечисления

Типобезопасные перечисления, которые решают множество проблем с C-перечислениями, включая неявные преобразования, арифметические операции, невозможность указать базовый тип, загрязнение области видимости и т.д.
Please open Telegram to view this post
VIEW IN TELEGRAM