Is it possible to use std::string in a constant expression?

c++, c++11, constexpr, stdstring

Solution

No, and your compiler already gave you a comprehensive explanation.

But you could do this:

constexpr char constString[] = "constString";

At runtime, this can be used to construct a `std::string` when needed.

Problem

Using C++11, Ubuntu 14.04, GCC default toolchain. This code fails: ``` 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 Is it possible to use `std::string` in a`constexpr`? (apparently not...) If so, how? Is there an alternative way to use a character string in a `constexpr`?

Original source

Related problems