Usando C ++ 11, Ubuntu 14.04, cadeia de ferramentas padrão do GCC .
Este código falha:
constexpr std::string constString = "constString";
erro: o tipo 'const string {aka const std :: basic_string}' da variável constexpr 'constString' não é literal ... porque ... 'std :: basic_string' possui um destruidor não trivial
É possível usar std::stringem um constexpr? (aparentemente não ...) Se sim, como? Existe uma maneira alternativa de usar uma cadeia de caracteres em um constexpr?
std::stringser constexpr? existem várias implementações de string em tempo de compilação no SO. qual é o sentido de perguntar se é possível criar um tipo não literal constexpr se você entende a mensagem de erro e sabe que apenas tipos literais podem ser constexpr? assim há várias razões pelas quais se pode querer ter uma instância constexpr, então eu sugiro que você esclarecer sua pergunta
constexprimplementações de strings por aí. std::stringnão é um deles.
std::stringnão é um tipo literal #