Unter Verwendung von C ++ 11, Ubuntu 14.04, GCC Standard-Toolchain .
Dieser Code schlägt fehl:
constexpr std::string constString = "constString";
Fehler: Der Typ 'const string {aka const std :: basic_string}' der constexpr-Variablen 'constString' ist nicht wörtlich ... weil ... 'std :: basic_string' einen nicht trivialen Destruktor hat
Ist es möglich, std::stringin einem zu verwenden constexpr? (anscheinend nicht ...) Wenn ja, wie? Gibt es eine alternative Möglichkeit, eine Zeichenfolge in a zu verwenden constexpr?
std::stringconstexpr sein willst? Auf SO gibt es mehrere Implementierungen von Zeichenfolgen zur Kompilierungszeit. Was bringt es, zu fragen, ob Sie einen nicht-wörtlichen Typ constexpr erstellen können, wenn Sie die Fehlermeldung verstehen und wissen, dass nur wörtliche Typen constexpr erstellt werden können? Es gibt auch mehrere Gründe, warum man eine constexpr-Instanz haben möchte, daher schlage ich vor, dass Sie Ihre Frage klären
constexprString-Implementierungen da draußen. std::stringist keiner von ihnen.
std::stringist kein wörtlicher Typ