std::meta::identifier_of, std::meta::u8identifier_of
Из ru.cppreference.net
| Определено в заголовке <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 является потенциально не уникальным объектом со статическим временем хранения, пригодным для использования в константных выражениях; указатель на такой элемент не подходит для использования в качестве аргумента шаблона для нетипового параметра шаблона указательного типа.
Пример
| Этот раздел неполон Причина: нет примера |
См. также
(C++26) |
проверяет, представляет ли отражение сущность, имеющую идентификатор (функция) |