0

clang-format我在for structs 和classes中遇到了不同的大括号断开行为。

以下示例文件说明了这一点:

测试.cpp

class TestClass
{
int member;
};

struct TestStruct
{
int member;
};

运行clang-formatv3.7.0 并BreakBeforeBraces: Linux产生:

$ clang-format test.cpp -style="{BreakBeforeBraces: Linux}"
class TestClass
{
  int member;
};

struct TestStruct {
  int member;
};

但是,clang-formatv3.5.0 会导致:

class TestClass
{
  int member;
};

struct TestStruct
{
  int member;
};

这是预期的行为吗?我在更新日志中没有找到任何提示。我该如何解决这个问题?

4

1 回答 1

0

这似乎是有意的行为,因为它在将近 5 年后仍然存在,在clang-format版本 10.0.0 中。

但是,从版本 3.8.0 开始,您可以通过设置来微调BreakBeforeBraces行为BreakBeforeBraces: Custom。执行此操作时,您可以设置BraceWrapping标志。特别是,有单独的标志AfterClass,并且AfterStruct- 如果您将这两个标志都设置为 true,您应该恢复您在 3.5.0 版中的行为。有关这方面的详细信息,请参阅文档

于 2020-09-02T17:07:01.073 回答