Spec-Zone.ru › C++

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

Определено в заголовке <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 — потенциально неуникальный объект со статической длительностью хранения, который можно использовать в константных выражениях; указатель на такой элемент не подходит для использования в качестве аргумента шаблона для нетипового параметра шаблона указательного типа.

Пример

См. также

has_identifier
(C++26)
проверяет, представляет ли отражение сущность, у которой есть идентификатор
(функция)

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

Spec-Zone.ru

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