Emacs缩进C+;中每个语句的+; 我试图让Emacs正确地为C++中的“每个”构造格式化。p>

Emacs缩进C+;中每个语句的+; 我试图让Emacs正确地为C++中的“每个”构造格式化。p>,c++,emacs,foreach,indentation,C++,Emacs,Foreach,Indentation,在以下两个示例中,我希望大括号与for中的f对齐: for each(Type a in b) { //^c^s shows substatement-open //... do stuff } for( ; ; ) { //^c^s shows substatement-open //... do stuff } 在这两种情况下,使用[Ctrl-c Ctrl-s](或[Ctrl-c Ctrl-o])显示两个开头{字符的类型均为

在以下两个示例中,我希望大括号与
for
中的
f
对齐:

for each(Type a in b)
        { //^c^s shows substatement-open
            //... do stuff
        }

for( ; ; )
{ //^c^s shows substatement-open
    //... do stuff
}
在这两种情况下,使用[Ctrl-c Ctrl-s](或[Ctrl-c Ctrl-o])显示两个开头{字符的类型均为
substation open
,并且在查看
c-offsets-alist
时,我看到
substation open
等于0


<>我如何使Emacs缩进<代码(>)> <代码>命令,类似于它如何缩进<代码>((;))< /COD>命令> < /P> < P>,假定Emacs不承认“< <代码>每个< /代码>”作为C++语法(我也不知道。这是微软扩展吗?预处理器破解?新的标准即将到来?)因此,难怪它的格式不“正确”

<>你可以破解这个模式,或者问维护者(我不希望有一个可能的响应),除非这将是正确的C++很快就可以了。
从评论中我的附加问题的答案如下:

  • OP询问的确切形式是Microsoft managed-c++扩展
  • 现在有
    BOOST\u FOREACH
    可用
  • C++0x支架将包括一个容器范围的循环,其语法类似于(:)的
    for

和模式维护器支持最新版本的微软语法…

< P>大概Emacs不承认“< <代码>每个< /代码>”作为C++语法(我也不知道。这是微软扩展吗?预处理器破解?新的即将到来的标准?),所以难怪它没有格式化它“正确”。

<>你可以破解这个模式,或者问维护者(我不希望有一个可能的响应),除非这将是正确的C++很快就可以了。
从评论中我的附加问题的答案如下:

  • OP询问的确切形式是Microsoft managed-c++扩展
  • 现在有
    BOOST\u FOREACH
    可用
  • C++0x支架将包括一个容器范围的循环,其语法类似于(:)的
    for

而且从它看来,模式维护者在最新版本中支持Microsoft语法…

对我来说——在Emacs 23.0.91下,
c++-mode
为每个块缩进
,因为它是
循环的正常

对我来说——在Emacs 23.0.91下,
c++-mode
为每个
块缩进
锁定,因为它是一个普通的<代码> < /COR>循环./P>看起来C++中有一个基于循环的范围,但这不是语法。它是MS VisualStudio扩展名:Boost对于每个都是一个可移植的替代品,并且它应该正确格式,因为它看起来像有效C++,不像“EAc'”,它看起来有一个基于循环的范围,在C++中+0x,但是这不是语法。它是一个MS VisualStudio扩展名:Boost对于每个都是一个可移植的替代品,它应该正确格式,因为它看起来像有效C++,不像“EAc'”,我使用Emacs 22.3.1,因为这是Windows上的最新版本。虽然很好,但是我使用的是最新版本的CC模式(5.31.6)。我使用的是emacs 22.3.1,因为它是Windows上的最新版本。不过这一点很好。我使用的是cc模式的最新版本(5.31.6)