std::define_static_string
Определено в заголовочном файле <meta> | ||
|---|---|---|
template< ranges::input_range R > consteval const ranges::range_value_t<R>* define_static_string( R&& r ); | (начиная с C++26) |
Перемещает массив символов в статическую область памяти. Нулевой символ добавляется, если r не является строковым литералом.
Эквивалентно:
return std::meta::extract<const ranges::range_value_t<R>*>(std::meta::reflect_constant_string(r));
Параметры
| r | - | input_range символов |
Возвращаемое значение
Указатель на первый элемент объекта-массива символов, являющегося объектом-параметром шаблона с содержимым r.
Примечания
Будучи объектом-параметром шаблона, результирующий строковый объект имеет статическую длительность хранения. Строки с одинаковым содержимым соответствуют одному и тому же объекту.
Результирующий объект-параметр шаблона является потенциально неуникальным объектом.
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_define_static | 202506L | (C++26) |
std::define_static_string |
Пример
См. также
|
(C++26) | перемещает массив времени компиляции в статическую область памяти и возвращает span статического массива (шаблон функции) |
|
(C++26) | перемещает значение времени компиляции в статическую область памяти и возвращает указатель на статический объект (шаблон функции) |
|
(C++26) | перемещает строку времени компиляции в статическую область памяти и возвращает отражение, представляющее статическую строку (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/define_static_string