我在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;
}
然后我按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;
}
这是BSD / Allman代码风格。其他样式显然会改变格式化代码的外观,但没有一个给出正确的缩进。
当我在更大的代码片段上使用格式化功能时,后续的函数或方法也会受到太少缩进的影响,这使得格式化帮助非常有用。
我有什么办法可以使用BOOST_FOREACH使缩进正常工作吗?
答案 0 :(得分:3)
将此添加到您的代码使用的某个标头中:
#ifdef __CDT_PARSER__
#undef BOOST_FOREACH
#define BOOST_FOREACH(a, b) for(a; ; )
#endif
答案 1 :(得分:2)
您可能想尝试astyle eclipse plugin。它似乎比C ++缩进的默认eclipse风格好得多。
答案 2 :(得分:2)
目前在开普勒的CDT中仍然存在问题。但是Eclipse的Bugzilla中存在一个错误(检查其状态here)。它最终将被修复: - )
答案 3 :(得分:1)
奇怪,这曾经与CDT 4一起使用。所以如果你真的需要这个,我建议你降级你的CDT: - /
答案 4 :(得分:0)