Spec-Zone.ru › C++

std::meta::reflect_constant

Определено в заголовке <meta>
template< class T >
consteval std::meta::info reflect_constant( T expr );
(начиная с C++26)

Возвращает отражение, представляющее либо значение expr (если T является ScalarType), либо объект параметра шаблона со значением expr (если T является типом класса).

Формально, пусть:

  • V означает:
    • если T является типом класса, то объект, который эквивалентен аргументу шаблона со значением expr;
    • в противном случае — значение expr;
  • TCls означает фиктивный шаблон template<T P> struct TCls;

Эта функция возвращает std::meta::template_arguments_of(^^TCls<V>)[0].

Программа некорректна, если std::is_copy_constructible_v<T> ложно, если T не является не cv-квалифицированным структурным типом или если T является ссылочным типом.

Параметры

expr - значение структурного типа

Возвращаемое значение

Отражение, описанное выше.

Исключения

Выбрасывает std::meta::exception, если TCls<V> некорректно.

Пример

См. также

reflect_constant_string
(C++26)
переносит строку времени компиляции в статическую память и возвращает отражение, представляющее статическую строку
(шаблон функции)
reflect_constant_array
(C++26)
переносит массив времени компиляции в статическую память и возвращает отражение, представляющее статический массив
(шаблон функции)
reflect_object
(C++26)
возвращает отражение, представляющее объект, пригодное для использования в качестве аргумента шаблона-константы
(шаблон функции)
reflect_function
(C++26)
возвращает отражение, представляющее функцию, пригодное для использования в качестве аргумента шаблона-константы
(шаблон функции)
substitute
(C++26)
подставляет отражённые аргументы в отражённый шаблон
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/reflect_constant

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API