【发布时间】:2012-09-06 04:58:59
【问题描述】:
This wikepedia page 将 c++ 定义为“空白独立语言”。虽然与所有语言一样大部分都是正确的,但该规则也有例外。目前我能想到的只有这样一个:
vector<vector<double> >
必须有空格,否则编译器会将 >> 解释为流运算符。周围还有什么。编译一个例外列表会很有趣。
【问题讨论】:
-
您不必担心使用 C++11 的那个。
-
C++11 专门添加了一条规则,允许
vector<vector<double>> -
请参阅g++ 4.7 evaluates operator “” as sibling to macro expansion,了解 C++11 用户定义文字的问题,您需要在其中添加空格。
-
@Mat: 非常真实......在 C++11 中你有很多更严重的事情要担心,即使它仍然存在,这个问题也真的无关紧要:-)
-
完全限定模板参数时需要一个空格:
::std::vector< ::std::string> vec;。
标签: c++ whitespace