2012-09-01 32 views
6

有人可以指点我完整的语言类型前缀/后缀列表吗?我在哪里可以找到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.. 

我所有的搜索尝试送我去 “使自己的用户定义的文字”。
也许这些实例有一个我不知道的特定名称?

回答

8

这些不是“类型”前缀/后缀,它们是文字前缀/后缀,因为它们应用于文字(字符串文字,数字文字......)。他们没有具体的名字,因为他们没那么有趣。

内置前缀和后缀在C++ 11是:

  • 整数:

    • 12U12L12UL12LU12LL12ULL12LLU12u12uL12Lu,12uLL,12LLu,12l12Ul12lU12ll12Ull12llU12ul12lu12ull12llu
  • 浮动点:

    • 1.0f1.0F1.0l1.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也可能有其他数字后缀的扩展名,见C floating point number notation


相关词法:

(§2.14.2整数常量)

无符号后缀:之一

u U

长后缀

ll LL

酮:

长长后缀

l L

一个

(§2.14.4浮动文本)

浮动后缀:的

f l F L

酮(§2.14.3字符文字)

字符字面

'C-炭序列'
u'C-炭序列'
U'C-炭序列'
L'C-炭序列'

(§2.14。5个字符串文字)

字串文本

编码前缀选择" S-炭序列选择"
编码前缀选择Rraw-str荷兰国际集团

编码前缀

u8
u
U
L

+3

的提用户定义的文字会很好。 –

+1

@LucDanton:我相信OP已经知道用户定义的文字是什么(他/他在倒数第二段中提到过),所以我只是把它排除在外。 – kennytm

+2

如果其他人对广义上的文字感兴趣,并通过搜索找到这个问题,那该怎么办? –