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