使用 clang-format - 将空括号保持在同一行

Using clang-format - keep empty braces on the same line

我正在尝试配置 clang-format,这样大括号通常会在它们自己的行开始:

void func()
{
    if (...)
    {
        printf("Ta Da\n");
    }
}

但我希望它在大括号为空时保持在一行中。 (主要用于ctors):

Bar::Bar(int val):
    _val(val)
{}

目前看起来像这样:

Bar::Bar(int val):
    _val(val)
{
}

有什么想法吗?

(已编辑以使情况更清楚)

我使用了 "AllowShortFunctionsOnASingleLine":是的, 和 "BreakBeforeBraces": "Allman", 在声明空构造函数等时将其放在一行..

更新:万岁!现在可以使用 Clang 5.0 或更高版本的自定义 BreakBeforeBraces。 请参阅 documentation 中的 SplitEmptyFunction

配置示例:

BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false

↓↓↓原答案(已过时)↓↓↓

不幸的是,无法使用 Clang 4.0 实现当前的 clang 格式选项(截至铿锵声 4.0).

来源: 我也有同样的问题。在研究了每个记录的选项和许多调整尝试之后,我无法实现这一点。根据我的经验,clang-format 并不像人们希望的那样灵活。一旦您想跳出预定义的样式并根据自己的喜好进行调整,它就不会削减它。