我在哪里可以找到C ++ 11类型前缀/后缀的列表?

时间:2012-09-01 07:12:57

标签: c++ types c++11 prefix user-defined-literals

有人能指出一个完整的语言类型前缀/后缀列表吗?

前缀示例:

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 个答案:

答案 0 :(得分:8)

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

C ++ 11中的内置前缀和后缀是:

  • 整数:

    • 12U12L12UL12LU12LL12ULL12LLU12u12uL12Lu12uLL12LLu12l12Ul12lU12ll,{ {1}},12Ull12llU12ul12lu12ull
  • 浮点数:

    • 12llu1.0f1.0F1.0l
  • 性状:

    • 1.0LL'x'u'x'
  • 的字符串:

    • U'x'u8"xxx"u"xxx"U"xxx"L"xxx"R"(xxx)"u8R"(xxx)"uR"(xxx)"UR"(xxx)"

特别是,LR"(xxx)"不是内置的C ++ 11后缀。一些编译器,例如GCC也可能有其他号码后缀的扩展名,请参阅C floating point number notation


相关的词汇语法:

(§2.14.2整数文字)

  

unsigned-suffix

之一      
    

1.0d

  
     

long-suffix

之一      
    

u U

  
     

long-long-suffix

之一      
    

l L

  

(§2.14.4浮动文字)

  

浮动后缀

之一      
    

ll LL

  

(§2.14.3字符文字)

  

字符字面

     
    

f l F L c-char-sequence '
    ' c-char-sequence u'
    ' c-char-sequence U'
    ' c-char-sequence L'

  

(§2.14.5字符串文字)

  

字串文本

     
    

encoding-prefix opt ' s-char-sequence opt "
     encoding-prefix opt " raw-string

  
     

编码前缀

     
    

R
    u8
    u
    U