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::string
dalam constexpr
? (ternyata tidak ...) Jika demikian, bagaimana? Apakah ada cara alternatif untuk menggunakan string karakter dalam constexpr
?
std::string
menjadi 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
constexpr
implementasi string di luar sana. std::string
bukan salah satu dari mereka.
std::string
bukan tipe literal