std::meta::type_of
От ru.cppreference.net
| Определено в заголовке <meta>
|
||
consteval std::meta::info type_of( std::meta::info r );
|
(начиная с C++26) | |
Возвращает отражение, представляющее тип того, что представляет r.
Формально:
- Если
rпредставляет параметр функции (см. std::meta::parameters_of), возвращает отражение соответствующего типа в списке типов параметров функции. - Если
rпредставляет значение, объект, переменную, функцию, нестатический элемент данных или безымянное битовое поле, возвращает отражение типа того, что представляетr. - Если
rпредставляет аннотацию, возвращаетstd::meta::type_of(std::meta::constant_of(r)). - Если
rпредставляет перечислитель перечисляемого типа E :
- если
type_ofвызывается после определения E , возвращает отражение E ; - в противном случае (
type_ofвызывается внутри определения E ), возвращает отражение целочисленного типа (который является типом перечислителя в определении перечисления).
- если
- Если
rпредставляет отношение прямой базовый класс (то есть элементstd::meta::bases_of(x, ctx)), возвращает отражение базового класса в этом отношении. - Если
rпредставляет описание элемента данных (то есть значение, возвращаемое std::meta::data_member_spec), возвращает отражение типа в описании.
Параметры
| r | - | отражение чего-то, что имеет тип |
Возвращаемое значение
Тип того, что представляет r.
Исключения
Выбрасывает std::meta::exception, если только то, что представляет r, не имеет тип. То есть r должно представлять одно из следующего:
- значение
- аннотация
- объект
- переменная
- функция, тип которой не содержит невыведенный заполнитель типа и которая не является конструктором или деструктором
- перечислитель
- нестатический элемент данных
- безымянное битовое поле
- отношение прямой базовый класс
- описание элемента данных
- параметр функции
Пример
| Этот раздел неполон Причина: нет примера |
См. также
(C++26) |
проверяет, представляет ли отражение тип (функция) |