Namespaces
Variants

std::meta::reflect_constant_string

来自 zh.cppreference.net
< cpp | meta
 
 
 
反射库
 
反射类型和查询
反射查询
反射布局查询
类型属性
类型属性查询
 
定义于头文件 <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 更为合适。

示例

参阅

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