C ++ 11, Ubuntu 14.04, GCC varsayılan araç zinciri kullanılarak .
Bu kod başarısız:
constexpr std::string constString = "constString";
hata: 'constString' constexpr değişkeninin 'const dizesi {aka const std :: basic_string}' harfi değişmez ... çünkü ... 'std :: basic_string' önemsiz olmayan bir yıkıcıya sahip
Kullanmak mümkün mü std::stringbir de constexpr? (görünüşe göre değil ...) Öyleyse, nasıl? A karakter dizgisini kullanmanın alternatif bir yolu var mı constexpr?
std::stringconstexpr olmak istiyorsunuz? SO üzerinde birkaç derleme zamanı dize uygulaması vardır. Hata mesajını anlar ve yalnızca değişmez türlerin constexpr yapılabileceğini biliyorsanız, değişmez bir tür constexpr yapıp yapamayacağınızı sormanın anlamı nedir? bir kişinin bir bağlam örneği olmasını isteyebilmesinin birkaç nedeni olabilir, bu yüzden sorunuzu netleştirmenizi öneririm
constexprdize uygulamaları var. std::stringonlardan biri değil.
std::stringgerçek bir tür değil