[英]Is std::string a literal type?
https://en.cppreference.com/w/cpp/named_req/LiteralType
他们在这里写道
文字类型是 constexpr 变量的类型
但是在我看来,我无法定义 constexpr string
(它是否具有静态存储持续时间或只是堆栈分配的 constexpr var 都没有关系)。
但是对文字类型有要求:
文字类型是以下任何一种:
- 可能具有以下所有属性的 cv 限定类类型:
- 有一个 [琐碎(直到 C++20)| constexpr (C++20 起)] 析构函数,
- 是其中之一
- 具有至少一个 constexpr(可能是模板)构造函数的类型,该构造函数不是复制或移动构造函数,
std::string
是否满足这些要求? 或者它可能会快速一个不符合要求的析构函数?
这里似乎没有指向 dtor 的链接https://en.cppreference.com/w/cpp/string/basic_string 。
我知道由于免费存储分配,它不能完全 constexpr (至少现在)。
我只是问它是否是文字类型。
析构函数是 constexpr。 见班级概要。 因此, std::string
是一种文字类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.