使用C ++ 11,Ubuntu 14.04和GCC默认工具链。
此代码失败:
constexpr std::string constString = "constString";
错误:constexpr变量'constString'的类型'const string {aka const std :: basic_string}'不是字面量...因为...'std :: basic_string'具有非平凡的析构函数
是否有可能使用std::string
的constexpr
?(显然不是...)如果是这样,怎么办?有没有在字符串中使用字符串的替代方法constexpr
?
@PiotrS-问题说……
—
矢量
@Vector我问过您constexpr是干什么的,或者为什么要
—
Piotr Skotnicki 2014年
std::string
成为constexpr?在SO上有几种编译时字符串实现。如果您理解错误消息并知道只能将文字类型设置为constexpr,那么问您是否可以使非文字类型的constexpr有什么意义呢?以及为什么有人想要一个constexpr实例的原因有很多,所以我建议您澄清一下问题
是的@PiotrS。说,那里有
—
tenfour 2014年
constexpr
字符串实现。std::string
不是其中之一。
@PiotrS- 在SO上有几种编译时字符串实现 -好的,谢谢,理解。这对我来说不是一个选择,但它回答了我的问题:std :: string无法正常工作。正如我对tenfour所说的那样,我想知道是否有一种方法可以使用std :: string。我当然不知道很多技巧。
—
矢量
std::string
不是文字类型