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

Параметр typename

Параметр typename в C++ применяется в двух основных случаях. Во-первых, он используется для объявления параметра шаблона, который должен быть типом (аналогично ключевому слову class). Во-вторых, он применяется перед зависимыми именами внутри шаблонов, чтобы компилятор мог понять, что некоторое имя является типом, а не переменной или функцией. Это особенно важно при работе с вложенными типами, зависящими от параметров шаблона.

Синтаксис

template <typename T> // объявление параметра шаблона typename T::value_type v; // указание, что зависимое имя - это тип

Пример

Давайте объявим простой шаблон функции с параметром typename, который принимает два значения одного типа и возвращает их сумму:

#include <iostream> using namespace std; template <typename T> T sum(T a, T b) { return a + b; } int main() { cout << sum(1, 2) << endl; cout << sum(1.5, 2.5) << endl; return 0; }

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

3 4

Пример

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

#include <iostream> #include <vector> using namespace std; template <typename Container> void printFirst(const Container& c) { typename Container::value_type first = c[0]; cout << first << endl; } int main() { vector<int> vec = {1, 2, 3, 4, 5}; printFirst(vec); return 0; }

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

1

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

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