我正在将clang格式(version 8.0.0 (tags/google/stable/2019-01-18)
)与样式文件一起使用,并在其中设置
…
PointerAlignment: Left
PointerBindsToType: true
…
这成功地转换了诸如此类的声明
const string &foo = "lorem ipsum";
进入
const string& foo = "lorem ipsum";
但是,当我还将其包含在样式文件中时
BasedOnStyle: Google
该选项不执行任何操作。由于某些原因,它们会被基本样式覆盖。这对我来说似乎是荒谬的–显式选项应该替代基本样式,不是吗?
有人可以解释问题是什么以及如何同时使用BasedOnStyle
和PointerBindsToType: true
吗?
答案 0 :(得分:1)
答案是Google样式(可以用clang-format -style=google -dump-config | less
进行检查)定义了
DerivePointerAlignment: true
文档说明了
如果为true,则分析格式化的文件以查找&和*的最常见对齐方式。指针和参考对齐方式将根据文件中的首选项进行更新。 PointerAlignment然后仅用作后备。
这意味着如果要自己处理DerivePointerAlignment: false
,则必须明确设置{{1}}。