Spec-Zone.ru › C++

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

Пример

См. также

define_static_array
(C++26)
перемещает массив времени компиляции в статическую область памяти и возвращает span статического массива
(шаблон функции)
define_static_object
(C++26)
перемещает значение времени компиляции в статическую область памяти и возвращает указатель на статический объект
(шаблон функции)
reflect_constant_string
(C++26)
перемещает строку времени компиляции в статическую область памяти и возвращает отражение, представляющее статическую строку
(шаблон функции)

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

Spec-Zone.ru

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