Использование C ++ 11, Ubuntu 14.04, GCC по умолчанию .
Этот код не работает:
constexpr std::string constString = "constString";
ошибка: тип 'const string {aka const std :: basic_string}' переменной constexpr 'constString' не является литералом ... потому что ... 'std :: basic_string' имеет нетривиальный деструктор
Можно ли использовать std::string
в constexpr
? (очевидно нет ...) Если так, то как? Есть ли альтернативный способ использовать строку символов в constexpr
?
std::string
быть constexpr? Есть несколько реализаций строк во время компиляции в SO. Какой смысл спрашивать, можно ли сделать constexpr не буквальным типом, если вы понимаете сообщение об ошибке и знаете, что можно сделать только литеральные типы constexpr? также есть несколько причин, по которым можно хотеть иметь экземпляр constexpr, поэтому я предлагаю вам уточнить ваш вопрос
constexpr
реализации строк там. std::string
не один из них.
std::string
не буквальный тип