Derleme zamanında türün adını kullanmak istiyorum. Sadece const char*
değil ... diğer bazı, constexpr yol var constexpr typeid(T).name()
olduğunu, ne yazık kiC++ tipi adlarını constexpr biçiminde alabilir miyim?
template <typename T>
constexpr auto type_name_length = my_strlen(typeid(T).name());
Ama:
constexpr size_t my_strlen(const char* s)
{
const char* cp = s;
while(*cp != '\0') { cp++; };
return cp - s;
}
ve şimdi istiyorum: Mesela ben yazdım varsayalım Bir türün adını almak için?
'type_name_length 'ile derleme zamanında ihtiyacınız olan şey nedir? Derleyiciler sadece strlen() 'i değerlendirmek ve eğer mümkün olursa size sabit vermek konusunda oldukça iyidir. –
Barry
@Barry: Burada sadece bir MCVE istedim, bu yüzden sentetik bir kullanım yaptım. – einpoklum
@einpoklum Bu iyi; ama (bu sadece bir MCVE, ben gerçekten X için çalışıyorum) soruda olduğunu söyleyerek bir yorum ekleyerek de iyidir. – Yakk