【发布时间】:2017-10-17 08:14:12
【问题描述】:
我有一个 lambda 函数,格式如下:
auto cb = [](std::string const& _param)
{
std::cout << _param;
};
我想将左大括号保留在新行上,但clang-format 总是将它放在第一行的末尾。是否可以将clang-format 配置为遵循上述样式?
我当前配置的相关部分如下所示:
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BeforeCatch: true
BeforeElse: true
IndentBraces: true
BreakBeforeBraces: Allman
我也想对 extern 块做同样的事情:
extern "C"
{
// ...
}
【问题讨论】:
-
您使用的是哪个版本的
clang-format?这可能是一个错误:mail-archive.com/llvm-bugs@lists.llvm.org/msg05471.html -
我使用的是 5.0.0 版 (tags/google/stable/2017-03-17)
-
我刚刚发现了跟踪 lambdas bugs.llvm.org//show_bug.cgi?id=32151 和外部块 bugs.llvm.org//show_bug.cgi?id=26689 问题的错误报告
-
如果您没有将 BreakBeforeBraces 设置为 Custom,我相信您的所有 BraceWrapping 值都会被忽略。
-
我相信更多相关的是bugs.llvm.org/show_bug.cgi?id=27640
标签: c++ c++11 lambda clang-format