91 подписчик
Шаблоны - это один из самых мощных и гибких инструментов в C++. Они позволяют создавать обобщенные алгоритмы и типы данных, которые могут работать с разными типами данных без необходимости создавать отдельные версии для каждого типа. Синтаксис шаблонов в C++ начинается с ключевого слова template, за которым следует список параметров шаблона в угловых скобках. Например, вот простой шаблон функции, который принимает два аргумента любого типа и возвращает их сумму: template <typename T> T sum(T a,...
1 год назад
13,8K подписчиков
Источник: Nuances of Programming Что такое идиома CRTP? Термин CRTP (curiously recurring template pattern) появился в 1995 году в одноименной статье, написанной Джеймсом О. Коплином. Он предполагает специализацию базовых классов с использованием производных классов в качестве аргументов шаблона. Выглядит это так: template <typename T> class Base { public: void interface() { static_cast<T*>(this)->implementation(); }; }; class Derived : public Base<Derived> { public: void implementation()...
2 года назад
7,2K подписчиков
Шаблоны. Звучит, как нечто очень далекое от программирования. Однако шаблоны являются крайне полезным инструментом. Фактически все динамические структуры в C# (динамические массивы, списки, очереди, стеки и пр) используют шаблонные методы. Также можно достаточно часто встретить и альтернативные названия такие как обобщенные типы, обобщения или generics. Что такое шаблоны? Предположим, необходимо разработать класс / метод, который работал бы с разными типами данных. Пока мы еще не знаем шаблонов, решением кажется создания отдельного метода для каждого типа данных...
5 лет назад