繁体   English   中英

std::string 是文字类型吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM