Namespaces
Variants

std::meta::identifier_of, std::meta::u8identifier_of

Из ru.cppreference.net
< cpp | meta
 
 
 
Библиотека отражения
Запросы доступности членов
Идентификация области видимости
Запросы членов отражения
Отражение аннотаций
Извлечение значений
Подстановка отражения
Отражение результата выражения
Генерация определения класса

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы и запросы отражения
Запросы отражения
Запросы компоновки отражения
Свойства типов
Запросы свойств типов
 
Определено в заголовке <meta>
consteval std::string_view identifier_of( std::meta::info r );
(1) (начиная с C++26)
consteval std::u8string_view u8identifier_of( std::meta::info r );
(2) (начиная с C++26)

Возвращает идентификатор, связанный с тем, что представляет r.

1) Результатом является строка символов, закодированная в обычной кодировке литералов.
2) Результатом является строка UTF-8.

Результирующая строка определяется следующим образом:

  • Если r представляет сущность с typedef-именем для целей связывания, возвращает это имя.
  • В противном случае, если r представляет литеральный оператор или шаблон литерального оператора, возвращает его идентификатор литерального суффикса.
  • В противном случае, если r представляет параметр функции P функции F, то пусть S будет набором объявлений, игнорируя любые явные инстанцирования, достижимых из точки в контексте вычисления и объявляющих либо F, либо шаблонную функцию, специализацией которой является F; возвращает имя, которое было введено объявлением из S для параметра, соответствующего P.
  • В противном случае, если r представляет сущность, возвращает её объявленное имя.
  • В противном случае, если r представляет отношение прямого базового класса, возвращает std::meta::identifier_of(std::meta::type_of(r)) или std::meta::u8identifier_of(std::meta::type_of(r)).
  • В противном случае, если r представляет описание элемента данных (T, N, A, W, NUA, ANN), возвращает имя описания N.

Параметры

r - значение отражения

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

Идентификатор того, что представляет r, как описано выше.

Исключения

Выбрасывает std::meta::exception, если только std::meta::has_identifier(r) не является true и результирующая строка представима в соответствующей кодировке.

Примечания

Результат V завершается нулевым символом: гарантируется, что V.data()[V.size()] равен '\0'. Каждый элемент в V является потенциально не уникальным объектом со статическим временем хранения, пригодным для использования в константных выражениях; указатель на такой элемент не подходит для использования в качестве аргумента шаблона для нетипового параметра шаблона указательного типа.

Пример

См. также

проверяет, представляет ли отражение сущность, имеющую идентификатор
(функция)