Использование 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не буквальный тип