РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
709 of 815 menu

Шаблон переменной

Шаблон переменной в C++ позволяет определить переменную или статический член класса с параметризованным типом. При этом в первом параметре указывается ключевое слово template с описанием шаблонных параметров, а далее идёт объявление переменной с типом, зависящим от этих параметров. При обращении к такой переменной тип подставляется автоматически на основе явного указания или вывода из контекста.

Шаблоны переменных часто применяются для создания обобщённых констант, например математических или физических величин, а также для определения статических членов шаблонных классов.

Синтаксис

template <typename T> T variableName = value; // или с несколькими параметрами: template <typename T, typename U> T variableName = value;

Пример

Давайте определим шаблон переменной pi, которая хранит значение числа пи для типа T:

#include <iostream> using namespace std; template <typename T> constexpr T pi = T(3.1415926535897932385); int main() { cout << pi<float> << endl; cout << pi<double> << endl; return 0; }

Результат выполнения кода:

3.14159 3.14159

Пример

Давайте определим шаблон переменной, которая возвращает максимальное значение для заданного целочисленного типа:

#include <iostream> #include <limits> using namespace std; template <typename T> constexpr T maxValue = numeric_limits<T>::max(); int main() { cout << maxValue<int> << endl; cout << maxValue<short> << endl; return 0; }

Результат выполнения кода:

2147483647 32767

Пример

Давайте определим шаблон переменной с двумя параметрами, которая хранит пару значений:

#include <iostream> using namespace std; template <typename T, typename U> struct Pair { T first; U second; }; template <typename T, typename U> constexpr Pair<T, U> pairValue{1, 2}; int main() { cout << pairValue<int, int>.first << " " << pairValue<int, int>.second << endl; return 0; }

Результат выполнения кода:

1 2

Смотрите также

  • ключевое слово template,
    которое объявляет шаблон
  • ключевое слово typename,
    которое задаёт шаблонный параметр-тип
  • шаблон класса template class,
    который параметризует класс
  • псевдоним шаблона alias template,
    который создаёт псевдоним шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить