使用C ++ 11,Ubuntu 14.04,GCC默认工具链。
此代码失败:
constexpr std::string constString = "constString";
error: the type ‘const string {aka const std::basic_string}’ of constexpr variable ‘constString’ is not literal... because... ‘std::basic_string’ has a non-trivial destructor
是否有可能std::string
在一个constexpr
?有没有其他的方法来使用字符串constexpr
?
发布于 2018-04-24 09:25:19
你可以这样做:
constexpr char constString[] = "constString";
在运行时,这可以用来在需要时构造一个std :: string。
发布于 2018-04-24 11:00:57
在C ++ 17中,你可以使用string_view
:
using namespace std::string_view_literals;
constexpr std::string_view sv = "hello, world"sv;
https://stackoverflow.com/questions/-100003962
复制相似问题