考虑以下clang-format
ted函数:
template <typename K>
void zxcv(int a, K&& k) {
return [ a, k{std::move(k)} ](C::c & x) mutable { return a * k(x); };
// ^ oh no an extra space
}
似乎clang-format
错误地将&
中的运算符C::c & x
视为二元运算符而不是一元&
。因此,它左侧有一个额外的空间。
但是,当k
按值而非移动时捕获时,&
会根据需要左对齐,并且方括号中没有多余的空格:
template <typename K>
void zxcv(int a, K&& k) {
return [a, k](C::c& x) mutable { return a * k(x); };
// ^ hooray left aligned as desired
}
我正在使用:
$ clang --version
clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ clang-format --version
clang-format version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
$ cat ~/.clang-format
BasedOnStyle: Google
IndentWidth: 4
Language: Cpp
DerivePointerAlignment: false
PointerAlignment: Left
Cpp11BracedListStyle: true
据我所知,自version 3.4以来,Clang应该很好地支持初始化的lambda捕获。
我应该如何clang-format
左右对齐我的&符号?