甲用户定义字面后缀 C++ 0x中应该是一个标识符该用户定义的字面后缀,带* _digit ...“?
- 开始于
_
(下划线)( 17.6.4.3.5) - 应该不与
_
开始后跟大写字母(17.6.4.3.2)每个名称[...]以下划线跟着是一个大写字母开头被保留执行任何使用。
是否有任何理由,为什么这样的后缀可能无法启动_
后面跟着一个数字? I.E. _4
或_3musketeers
?
Musketeer dartagnan = "d'Artagnan"_3musketeers;
int num = 123123_4; // to be interpreted in base4 system?
string s = "gdDadndJdOhsl2"_64; // base64decoder
规范说“每个名字......”。用户定义的文字操作符名称就像'operator“”_Foo“。这里没有名字像'_Foo'拼写,所以17.6.4.3.2不适用。我还想知道,你从哪里读到后缀可能不是以'_'开头,后面跟着一个数字?我还没有找到这样的规则。 – 2011-04-25 11:46:32
嗯,我想我忽略了库也允许impl使用'_Foo'作为宏,所以使用'operator“”_Foo“不安全。 – 2011-04-25 14:56:04
我在那里给了参考。 '_Xxx'和'__anything'被保留用于所有地方的实现,全局名称空间中的'_anything'。 – towi 2011-04-26 07:20:38