C++ 使用铿锵格式-将空大括号保持在同一行上

C++ 使用铿锵格式-将空大括号保持在同一行上,c++,clang-format,C++,Clang Format,我正在尝试配置铿锵格式,以便大括号通常在其自己的行上开始: void func() { if (...) { printf("Ta Da\n"); } } 但我希望是这样,当大括号为空时,它将保留在一行中。(主要用于执行机构): 目前情况如下: Bar::Bar(int val): _val(val) { } 有什么想法吗 (编辑以使情况更清楚)我使用了 “AllowShortFunctionsOnASingleLine”:正确, 和 “Bre

我正在尝试配置铿锵格式,以便大括号通常在其自己的行上开始:

void func()
{
    if (...)
    {
        printf("Ta Da\n");
    }
}
但我希望是这样,当大括号为空时,它将保留在一行中。(主要用于执行机构):

目前情况如下:

Bar::Bar(int val):
    _val(val)
{
}
有什么想法吗

(编辑以使情况更清楚)

我使用了 “AllowShortFunctionsOnASingleLine”:正确, 和 “BreakBeforeBrases”:“Allman”,
要在声明空构造函数等时将其保留到一行,请更新:万岁!现在,使用Clang 5.0或更高版本的自定义
breakbeforebrases
就可以了。 请参阅中的
SplitEmptyFunction

配置示例:

BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false

↓↓↓ 原始答复(过时)↓↓↓ 不幸的是,使用Clang 4.0无法实现当前的Clang格式选项(从Clang 4.0开始)


来源:我也有同样的问题。在研究了每一个记录在案的选项和许多调整尝试之后,我无法做到这一点。根据我的经验,叮当格式并不像人们希望的那样灵活。一旦你想要跳出预定义的样式,并根据自己的喜好调整内容,它就不会削减它。

这是该样式的预期行为。空构造函数没有主体,所以在同一行上写大括号是有意义的。如果你想要更多的选择,可以尝试AStyle而不是clang格式,但是我不知道这是否可能。误解。我也开始注意到它的局限性。然而,它似乎仍然是我们完成这项工作的最佳工具。@BernardoSulzbach Clang 5最终在同一行上启用了空括号。我更新了答案。
BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false