有单行空构造函数,但在其他任何地方都使用大括号

时间:2019-06-12 17:56:46

标签: clang-format

我正在寻找一种使clang格式允许单行为空的构造函数,但在其他任何地方都将大括号放在换行符上的方法。

理想情况下,我想用一个clang配置支持这三种情况。

    serverResp.then()
            .statusCode(200)
            .body("query.endDateTime", equalTo("2020-07-01T00:00:00"))

无论如何,有没有一种特殊情况的构造方法?即使能够在一行上具有与构造函数相同的空函数,也是可以接受的。但是将短函数放在一行上是不可接受的。

1 个答案:

答案 0 :(得分:0)

这不能解决所有问题,但可以解决我的主要情况。

AllowShortFunctionsOnASingleLine: InlineOnly

这将使类定义中的短函数成为一行。

来自https://clang.llvm.org/docs/ClangFormatStyleOptions.html

  

SFS_InlineOnly(在配置中:InlineOnly)仅合并在类内部定义的函数。与“内联”相同,不同之处在于它并不意味着“空”:也就是说,顶层空函数也不会合并。

class Foo {
  void f() { foo(); }
};
void f() {
  foo();
}
void f() {
}

结合BreakBeforeBraces:Allman给了我想要的结果。