C ++ 11, Ubuntu 14.04, GCC 기본 툴체인 사용 .
이 코드는 실패합니다 :
constexpr std::string constString = "constString";
오류 : constexpr 변수 'constString'의 'const string {aka const std :: basic_string}'유형은 리터럴이 아닙니다 ... 왜냐하면 'std :: basic_string'은 사소한 소멸자를 갖지 않기 때문입니다.
그것은 사용할 수 있습니다 std::string
A의 constexpr
? (분명히 아닙니다 ...) 그렇다면 어떻게? 에서 문자열을 사용하는 다른 방법이 constexpr
있습니까?
std::string
습니까? SO에는 여러 컴파일 타임 문자열 구현이 있습니다. 오류 메시지를 이해하고 리터럴 유형 만 constexpr로 만들 수 있다는 것을 알면 리터럴이 아닌 유형 constexpr을 만들 수 있는지 묻는 요점은 무엇입니까? 또한 constexpr 인스턴스를 원할 수있는 몇 가지 이유가 있으므로 질문을 분명히 제시하십시오.
constexpr
문자열 구현이 있습니다. std::string
그들 중 하나가 아닙니다.
std::string
문자 그대로의 유형은 아니다