根据Bjarne的编程原则和使用[**int**,C++的实践(第六次印刷,2012年11月),“每一种类型都有自己的文字风格:char**,** string**,和** bool**]”(临63)。
在同一本书的第A.2节中,还提到了int (无符号;long)和浮点文字的其他变体,以及(null)指针文字。
每种类型都有对应的文字?吗?
发布于 2014-03-06 04:30:13
Bjarne的编程原则和使用C++的实践(第六次印刷,2012年11月)将ISO/IEC 14882:2003作为相关的C++标准。在这方面,可以找到相关的第2.13节,内容如下:
2.13 Literals
There are several kinds of literals.
literal:
integer-literal
character-literal
floating-literal
string-literal
boolean-literal显然,这是一个详尽的列表;而且由于该列表中可能有更多的类型,所以答案是:不是,不是每种类型都有相应的文字.。
注:关于C++11一案,请见https://stackoverflow.com/a/22199042/82216。
发布于 2014-03-05 13:22:45
C++ n3337 § 2.14.1/1: 有几种文字。 字面上: 整数字 字符-文字 浮动文字 字符串-文字 布尔-文字 指针-文字 用户定义-文字
不,不是艾弗里类型有文字。类没有文字,比如void、int*、signed char、unsigned char、short、unsigned short。
文字解释说:
integer-literal
整数文字是指没有句点或指数部分的数字序列。
示例:1
character-literal
字符文字是以单引号括起来的一个或多个字符,如在‘x’中,可选择地在字母u、U或L之前加上一个字母,如u‘y’、U‘z’或L‘x’。
C-char序列
U‘c-char序列
U‘c-char序列
C-char序列
例子:'a','ab','\'',L'0','('
floating-literal
浮点数由整数部分、小数点、分数部分、E或E、可选带符号整数指数和可选类型后缀组成。整数部分和分数部分都由十进制(基数为10)的数字组成。可以省略整数部分或分数部分(不是两者兼而有之);小数点或字母e(或E)和指数(不是两者兼而有之)都可以省略。整数部分、可选小数点和可选分数部分构成浮点文字的重要部分。指数,如果存在的话,表示10的幂,其中重要的部分将被缩放。
例子:123.456e-67,.1E1f,42.,13e3
string-literal
字符串文字是由双引号包围的一系列字符(如2.14.3中定义的),可选前缀为R、u8、u8R、U、UR、u、uR、L或LR,如“.”、R“(.)”、u8“.”、u8R“(.)”、u“.”、uR"*̃(...)*̃“、U”.“、UR”zzz(.)zzz“、L”.“。或LR“(.)”。
编码-前缀“s-char-sequenceopt”
编码-前缀R原始字符串
例子:"me",L"you"
boolean-literal
布尔文本是关键字false和true。这样的文字是prvalues,并具有bool类型。
false
truepointer-literal
指针文字是关键字nullptr。它是一个std::nullptr_t类型的prvalue。
nullptruser-defined-literal
operator""过载,允许使用用户定义的逻辑解释文字。
示例:
typedef double signalf;
constexpr signalf operator"" _percent( long double val) { return val / 100 ; }
std::cout << 12.34_percent; // prints 0.1234发布于 2014-03-05 13:14:15
int*没有文字。最接近的是nullptr,但它的类型是nullptr_t。
https://stackoverflow.com/questions/22198779
复制相似问题