std::meta::reflect_constant_string

来自cppreference.com
< cpp | meta
 
 
元编程库
类型特征
类型类别
(C++11)
(C++11)(DR*)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11) 
(C++11)
(C++11)
类型属性
(C++11)
(C++11)
(C++14)
(C++11)(C++26 弃用)
(C++11)(C++20 前*)
(C++11)(C++20 弃用)
(C++11)
类型特征常量
元函数
(C++17)
受支持操作
关系与属性查询
类型修改
(C++11)(C++11)(C++11)
类型变换
(C++11)(C++23 弃用)
(C++11)(C++23 弃用)
(C++11)
(C++11)(C++20 前*)(C++17)

(C++11)
(C++17)
编译时有理数算术
编译时整数序列
 
在标头 <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 更为合适。

示例

参阅

Template:cpp/meta/dsc define static stringTemplate:cpp/meta/dsc reflect constant arrayTemplate:cpp/meta/dsc reflect constant