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.
Строка результата определяется следующим образом:
- Если
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 — потенциально неуникальный объект со статической длительностью хранения, который можно использовать в константных выражениях; указатель на такой элемент не подходит для использования в качестве аргумента шаблона для нетипового параметра шаблона указательного типа.
Пример
См. также
|
(C++26) | проверяет, представляет ли отражение сущность, у которой есть идентификатор (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/identifier_of