Где я могу найти список префиксов / суффиксов типа 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 -префикс opt R сырец строка

префикс кодировки:

u8
u
U
L

Другие вопросы по тегам