Spec-Zone.ru › C++

std::meta::reflect_constant_string

Определён в заголовочном файле <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.

Пример

См. также

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

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

Spec-Zone.ru

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