4

我们目前正在使用clang-format. 我们发现了一种情况,std::cout如果存在两个连续的字符串文字,由于某种原因,流运算符 to 被移动到下一行。在两个字符串文字之间放置一个变量会导致 clang-format 不会更改格式。.clang-format为了避免这种情况,需要在文件中进行哪些更改?

int main()
{
    std::cout << "something" << "something" << std::endl;
}

变成

int main()
{
    std::cout << "something"
              << "something" << std::endl;
}

尽管

int main()
{
    int a = 0;
    std::cout << "something" << a << "something" << std::endl;
}

保持不变。请注意,虽然最后一个片段更宽,但它没有分成多行,而上面较短的片段是。

这与 LLVM 9.0.0 Windows 安装程序一起使用,并且可以使用默认配置文件重现。

4

1 回答 1

7

此行为无法通过.clang-format文件更改,因为它是代码的一部分。

此提交中引入了此行为: https ://github.com/llvm-mirror/clang/commit/df28f7b8dd6a032515109de4ff5b4067be95da8e

错误报告链接:https ://bugs.llvm.org/show_bug.cgi?id=45018

于 2020-02-25T09:17:05.180 回答