使用BOOST_FOREACH时如何正确地使Eclipse CDT自动缩进?

act*_*.se 9 c++ eclipse formatting boost indentation

我在Eclipse 3.4.1(CDT 5.0.1)中编写了这个小小的C++示例:

#include <iostream>
#include <vector>
#include <boost/foreach.hpp>

int foo()
{
  std::vector<int> numbers;
  BOOST_FOREACH(int n, numbers)
  {
    std::cout << n << std::endl;
  }
  std::cout << numbers.size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

然后我按Shift + Ctrl + F格式化我的代码,它变为:

#include <iostream>
#include <vector>
#include <boost/foreach.hpp>

int foo()
{
    std::vector<int> numbers;
    BOOST_FOREACH(int n, numbers)
{   std::cout << n << std::endl;
}
std::cout << numbers.size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

这与BSD/Allman代码风格有关.其他样式显然改变了格式化代码的外观,但没有一个给出正确的缩进.

当我在更大的代码片段上使用格式化功能时,后续的函数或方法也会受到太少缩进的影响,这使得格式化帮助非常无益.

我有什么办法可以使缩进与BOOST_FOREACH一起正常工作吗?

Gio*_*hal 0

呃……你不能吗?尝试下一个版本的 CDT...:_(