c++是一种与空格无关的语言,规则的异常(exception)

标签 c++ whitespace

This wikepedia page将 c++ 定义为“空白独立语言”。虽然与所有语言一样,大多数情况下都是如此,但也有异常(exception)。目前我唯一能想到的是:

vector<vector<double> >

必须有一个空格,否则编译器会将 >> 解释为流运算符。周围还有什么。编制一份异常(exception) list 会很有趣。

最佳答案

按照该逻辑,您可以使用任何两个字符的词素来产生规则的此类“异常(exception)”。例如,+=+ = 会有不同的解释。不过,我不会称它们为异常(exception)。在 C++ 中,在许多上下文中,“根本没有空格”与“一个或多个空格”有很大不同。当有人说 C++ 是空间无关的时,他们通常是指 C++ 中的“一个空间”通常与“多个空间”相同。

这反射(reflect)在语言规范中,其中指出(参见 2.1/1)在翻译的第 3 阶段,允许实现用一个空格字符替换多个空白字符的序列。

关于c++是一种与空格无关的语言,规则的异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293205/

相关文章:

c++ - 当模板参数无效时如何抛出异常?

C++ WIN32 : where to put code that executes as program is running

c - 如何从C中的字符串中删除多余的空格

css - Bootstrap2 Navbar 和下方行之间的神秘空白

php - 文本区域在文本开头添加空格?

c++ - C++ 中的流使程序崩溃

c++ - 为什么 lambda 在转换为函数指针时不能在 constexpr 上下文中使用?

c++ - 编译器不能在 Vector_const_iterator 和 Vector_iterator 之间使用 "convert",即使两者的方法都可用

mysql - 用于检查字符串开头或结尾处是否有空格的 RegEx 模式

emacs - 如何为 Emacs 取消空白模式的前景色