C++ cli &引用;对于每一个“;在C++/CLI:一个或两个令牌?

C++ cli &引用;对于每一个“;在C++/CLI:一个或两个令牌?,c++-cli,token,C++ Cli,Token,我问了一个又一个问题。在C++/CLI格式化中,每个(…in…语句的都会遇到换行问题 我的问题很简单:在C++/CLI中,每个是两个令牌,还是一个内有空格(0x20)的令牌? 我的观点是,我认为没有任何令牌可以包含空格,但当它们(通过叮当格式格式化程序)拆分为两行时,如下所示: for each ( auto a in b ) { } 我得到了错误: C2061语法错误:标识符“each” C2143语法错误:缺少“;”在“{”之前 但当我写作时: for each

我问了一个又一个问题。在C++/CLI格式化中,每个(…in…语句的
都会遇到换行问题

我的问题很简单:在C++/CLI中,每个
是两个令牌,还是一个内有空格(0x20)的令牌?

我的观点是,我认为没有任何令牌可以包含空格,但当它们(通过叮当格式格式化程序)拆分为两行时,如下所示:

for
    each ( auto a in b )
    {
    }
我得到了错误:

  • C2061语法错误:标识符“each”
  • C2143语法错误:缺少“;”在“{”之前
但当我写作时:

for each ( a in aa ) {}

我没有错误。

根据,
for each
是一个上下文敏感的关键字,因此编译器会出错。文档还提到不建议使用它。它是一个关键字。无论词法分析器还是语法分析器识别它都不明显,源代码从未发布过。不管怎样,它对您都没有帮助。您如果您使用了错误的工具,VS自动格式化程序没有问题。请使用“编辑>高级>格式化文档”。@HansPassant嗯……我们习惯于使用团队设置,MS在VS2019(或VS2017?我们使用的是VS2015)中将其删除。要允许团队格式化,我们必须使用ClangFormat.exe。这不是我们的首选。