std::meta::reflect_constant_string

来自cppreference.com
< cpp | meta
在标头 <meta> 定义
template< ranges::input_range R >
consteval std::meta::info reflect_constant_string( R&& r );
(C++26 起)

返回一个反射,该反射表示一个字符数组对象,该对象的元素是 r 中对应的元素,如果 r 不是字符串字面量对象,则末尾附加一个空字符。

结果字符数组对象是一个模板形参对象:它具有静态存储期,且内容相同的字符串对应同一个对象。

该结果字符数组对象也是一个可能非唯一的对象

形式上,令:

  • CharTranges::range_value_t<R>,它必须是 charwchar_tchar8_tchar16_tchar32_t 之一。
  • VCharT 类型的值包,其元素是 r 中对应的元素,但如果 r 是字符串字面量对象,则 V 不包含 r 的终止空字符。
  • Pconst CharT[sizeof...(V) + 1] 类型的模板形参对象,并用 {V..., CharT()} 进行初始化。

该函数返回表示对象 P 的反射。

参数

r - 字符的 input_range

返回值

表示字符数组对象的反射,如上所述。

注解

std::meta::reflect_constant_string 的结果适用于 std::meta::substitute。如果调用者想要的是指向静态字符串的指针而非一个反射值,那么通常 std::define_static_string 更为合适。

示例

参阅

将编译期字符串提升为静态存储,返回指向该静态字符串首字符的指针
(函数模板) [编辑]
将编译期数组提升为静态存储,返回表示该静态数组的反射
(函数模板) [编辑]
返回表示某个值或模板形参对象的反射,适合用作常量模板实参
(函数模板) [编辑]