C++ 为什么铿锵格式会把代码搞糟?
我的代码库有很多C++ 为什么铿锵格式会把代码搞糟?,c++,clang,clang-format,C++,Clang,Clang Format,我的代码库有很多std::variant类型和函数,它们使用std::visit根据实际类型实现不同的行为 我使用clang格式,有时它会扰乱使用std::vision。我有一个名为visitor的函数,它从一堆lambda构建一个访问者。当lambda声明返回类型为auto&时,clangformat决定在每个lambda的右括号后开始断行,在左边空白处留下逗号 下面是一个示例函数,具有clangformat格式: struct A {}; struct B {}; typedef std::
std::variant
类型和函数,它们使用std::visit
根据实际类型实现不同的行为
我使用clang格式
,有时它会扰乱使用std::vision
。我有一个名为visitor
的函数,它从一堆lambda构建一个访问者。当lambda声明返回类型为auto&
时,clangformat
决定在每个lambda的右括号后开始断行,在左边空白处留下逗号
下面是一个示例函数,具有clangformat
格式:
struct A {};
struct B {};
typedef std::variant<A, B> AB;
template <class... Ts>
struct visitor : Ts... {
using Ts::operator()...;
};
template <class... Ts>
visitor(Ts...) -> visitor<Ts...>;
AB& f(AB& ab) {
auto v = visitor{[&](const A& a) -> auto& {std::cout << "A" << std::endl;
return ab;
}
, [&](const B& b) -> auto& {
std::cout << "B" << std::endl;
return ab;
}
,
};
std::visit(v, ab);
}
这是我的.clangformat
文件:
BasedOnStyle: Google
ColumnLimit: 120
IndentWidth: 4
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
我用的是叮当声9
有人知道我能解决这个问题吗?第二个后面似乎有一个额外的逗号lambda@user7860670尾随逗号,而不是C++的一部分,是CLAN扩展。如果删除逗号可以修复它,那么这将确认一个叮当作响的格式错误。删除额外的逗号并不能修复它。
BasedOnStyle: Google
ColumnLimit: 120
IndentWidth: 4
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign