Menggunakan C ++ 11, Ubuntu 14.04, GCC toolchain default .
Kode ini gagal:
constexpr std::string constString = "constString";
error: tipe 'const string {alias const std :: basic_string}' dari variabel constexpr 'constString' tidak literal ... karena ... 'std :: basic_string' memiliki destruktor non-sepele
Apakah mungkin untuk digunakan std::stringdalam constexpr? (ternyata tidak ...) Jika demikian, bagaimana? Apakah ada cara alternatif untuk menggunakan string karakter dalam constexpr?
std::stringmenjadi constexpr? ada beberapa implementasi string kompilasi-waktu pada SO. apa gunanya bertanya apakah Anda dapat membuat constexpr tipe non-literal jika Anda memahami pesan kesalahan dan tahu hanya tipe literal yang dapat dibuat constexpr? juga ada beberapa alasan mengapa seseorang mungkin ingin memiliki instance constexpr, jadi saya sarankan Anda mengklarifikasi pertanyaan Anda
constexprimplementasi string di luar sana. std::stringbukan salah satu dari mereka.
std::stringbukan tipe literal