Namespaces
Variants

std::meta::reflect_constant_string

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

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы и запросы отражения
Запросы отражения
Запросы компоновки отражения
Свойства типов
Запросы свойств типов
 
Определено в заголовке <meta>
template< ranges::input_range R >
consteval std::meta::info reflect_constant_string( R&& r );
(начиная с C++26)

Возвращает отражение, представляющее объект массива символов, элементы которого являются соответствующими элементами r, при этом если r не является объектом строкового литерала, в конец добавляется нулевой символ.

Полученный объект массива символов является объектом-параметром шаблона: он имеет статическую продолжительность хранения, и строки с одинаковым содержимым соответствуют одному и тому же объекту.

Полученный объект массива символов также является потенциально неединственным объектом.

Формально, пусть:

  • CharT будет ranges::range_value_t<R>, который должен быть одним из char, wchar_t, char8_t, char16_t или char32_t.
  • V будет пакетом значений типа CharT, элементы которого являются соответствующими элементами r, за исключением того, что если r является объектом строкового литерала, V не включает завершающий нулевой символ r.
  • P будет объектом-параметром шаблона типа const CharT[sizeof...(V) + 1], инициализированным с помощью {V..., CharT()}.

Эта функция возвращает отражение, представляющее объект P.

Параметры

r - input_range символов

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

Отражение, представляющее объект массива символов, как описано выше.

Примечания

Результат std::meta::reflect_constant_string подходит для использования с std::meta::substitute. Если вызывающая сторона хочет получить указатель на статическую строку, а не значение отражения, std::define_static_string обычно более подходит.

Пример

Смотри также

продвигает строку времени компиляции в статическую память, возвращая указатель на первый символ статической строки
(шаблон функции)
продвигает массив времени компиляции в статическую память, возвращая отражение, представляющее статический массив
(шаблон функции)
возвращает отражение, представляющее значение или объект-параметр шаблона, пригодное для использования в качестве постоянного аргумента шаблона
(шаблон функции)