Spec-Zone.ru › C++

std::meta::display_string_of, std::meta::u8display_string_of

Определено в заголовочном файле <meta>
consteval std::string_view display_string_of( std::meta::info r );
(1) (начиная с C++26)
consteval std::u8string_view u8display_string_of( std::meta::info r );
(2) (начиная с C++26)

Возвращает строку, определяемую реализацией. Реализациям рекомендуется создавать текст, помогающий определить, что представляет собой r.

Параметры

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

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

Строка, определяемая реализацией. По возможности строка должна подходить для идентификации представленной конструкции.

Примечания

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

Пример

#include <iostream>
#include <meta>
#include <vector>

struct S { int m; };
enum class E { e };
void foo() noexcept;

int main()
{
    constexpr static auto names =
    {
        std::define_static_string(display_string_of(^^S)),
        std::define_static_string(display_string_of(^^S::m)),
        std::define_static_string(display_string_of(^^E)),
        std::define_static_string(display_string_of(^^E::e)),
        std::define_static_string(display_string_of(^^foo)),
        std::define_static_string(display_string_of(^^std)),
        std::define_static_string(display_string_of(^^std::vector<int>))
    };

    for (const auto& name : names)
        std::cout << name << '\n';
}

Возможный вывод:

S
S::m
E
E::e
void foo()
std
std::vector<int>

См. также

identifier_ofu8identifier_of
(C++26)(C++26)
если отражаемая сущность имеет идентификатор, получает его имя
(функция)

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

Spec-Zone.ru

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