standard określa typ łańcuch znaków na w §2.13.5/8, ponieważ:Dlaczego decltype w ciągu znaków literowych nie daje typu tablicy?
Zwykłe napisowych i UTF-8 napisowych są również określane jako wąskie napisowych. Wąskie wyrażenie literowe ma typ "tablica n const char", gdzie n jest rozmiarem łańcucha zdefiniowanego poniżej i ma statyczny czas przechowywania (3.7).
Dlatego, na przykład, "sss"
powinna mieć typ char const[4]
(chyba, że czytam go nieprawidłowo).
Ale ten prosty fragment:
std::cout << std::boolalpha << std::is_pointer<decltype("sss")>::value << '\n';
std::cout << std::boolalpha << std::is_array<decltype("sss")>::value;
false
false
Czego mi brakuje?
Wysoce powiązane: https://stackoverflow.com/q/15036281/3002139 –