qua*_*dev -1 c++ language-lawyer
C++语言中的哪些规则允许在范围解析运算符之后出现空格::?
即以下编译没有警告:
#include <string>
#include <iostream>
int main ()
{
std:: string s = "Hello";
std:: cout << s << std ::endl;
}
Run Code Online (Sandbox Code Playgroud)
通常,您可以在令牌之间放置尽可能多的空间.在某些情况下,空间是必要的(例如,分隔标识符); 在其他情况下,它是可选的(例如在标识符和运算符之间).
这在C++ 11 2.7中有所描述:
如下所述,空白,水平和垂直制表符,换行符,换页符和注释(统称为"空白空间")将被忽略,除非它们用于分隔令牌.[ 注意:需要一些空格来分隔其他相邻的标识符,关键字,数字文字和包含字母字符的替代标记.- 结束说明 ]