std::meta::template_of
От ru.cppreference.net
| Определён в заголовке <meta>
|
||
consteval bool template_of( std::meta::info r );
|
(начиная с C++26) | |
Для отражения r, представляющего сущность, созданную из шаблона функции, шаблона переменной, шаблона класса или шаблона псевдонима, возвращает отражение этого шаблона.
Параметры
| r | — | значение отражения |
Возвращаемое значение
Шаблон, из которого создана функция, переменная, класс или псевдоним типа, представленные отражением r.
Исключения
Выбрасывает std::meta::exception, если только std::meta::has_template_arguments(r) не является true (т.е. r представляет сущность, созданную из шаблона).
Пример
Запустить этот код
#include <meta>
#include <string>
#include <vector>
static_assert(template_of(^^std::vector<int>) == ^^std::vector);
static_assert(!has_template_arguments(^^std::string));
static_assert(template_of(std::meta::dealias(^^std::string)) == ^^std::basic_string);
int main() {}
Смотрите также
Шаблон:cpp/meta/dsc is template(C++26) |
проверяет, создана ли отражаемая сущность путём подстановки аргументов шаблона в шаблон (функция) |