Где я могу найти список префиксов / суффиксов типа C++11?
Может ли кто-нибудь указать мне полный список префиксов / суффиксов языковых типов?
Примеры префиксов:
auto s1 (u8"I'm a UTF-8 string.");
auto s2 (u"This is a UTF-16 string.");
auto s3 (U"This is a UTF-32 string.");
auto s4 (R"(RAW \ STRING " )");
auto s5 (L"wide string");
//etc..
//*I've only seen prefixes like this for strings.
Примеры суффиксов:
auto n1 = 7.2f;
auto n2 = 7.2d;
auto n3 = 100L;
auto n4 = 10000LL;
//etc..
Все мои попытки поиска приводят меня к "созданию собственных пользовательских литералов".
Возможно, у этих экземпляров есть конкретное имя, о котором я не знаю?
1 ответ
Это не префиксы / суффиксы типа, это буквальные префиксы / суффиксы, так как они применяются к литералам (строковые литералы, числовые литералы, ...). У них нет конкретных имен, потому что они не так интересны ☺.
Встроенные префиксы и суффиксы в C++11:
Целые:
12U
,12L
,12UL
,12LU
,12LL
,12ULL
,12LLU
,12u
,12uL
,12Lu
,12uLL
,12LLu
,12l
,12Ul
,12lU
,12ll
,12Ull
,12llU
,12ul
,12lu
,12ull
,12llu
Плавающие точки:
1.0f
,1.0F
,1.0l
,1.0L
Персонажи:
L'x'
,u'x'
,U'x'
Строки:
u8"xxx"
,u"xxx"
,U"xxx"
,L"xxx"
,R"(xxx)"
,u8R"(xxx)"
,uR"(xxx)"
,UR"(xxx)"
,LR"(xxx)"
Особенно, 1.0d
не является встроенным суффиксом C++11. Некоторые компиляторы, например, GCC, также могут иметь расширения для других суффиксов чисел, см. С нотацию чисел с плавающей запятой.
Соответствующая лексическая грамматика:
(§2.14.2 Целочисленные литералы)
беззнаковый суффикс: один из
u U
длинный суффикс: один из
l L
длинный-длинный суффикс: один из
ll LL
(§2.14.4 Плавающие литералы)
плавающий суффикс: один из
f l F L
(§2.14.3 Символьные литералы)
буквально-буквенный:
'
с-символ последовательности'
u'
с-символ последовательности'
U'
с-символ последовательности'
L'
с-символ последовательности'
а также
(§2.14.5 Строковые литералы)
строковый литерал:
opt -prefix prefix
"
s-char-sequence opt"
opt -префикс optR
сырец строкапрефикс кодировки:
u8
u
U
L