使用 clang-format 从 C++ 中的新行开始每个 <<
Posted
技术标签:
【中文标题】使用 clang-format 从 C++ 中的新行开始每个 <<【英文标题】:Start each << from a new line in C++ with clang-format 【发布时间】:2021-08-20 21:09:51 【问题描述】:考虑以下一段 C++ 代码:
void foo()
std::cout << "Hello, "
<< "world!"
<< std::endl;
当我在没有任何样式选项的情况下运行 clang-format
时,我得到了这个:
void foo()
std::cout << "Hello, "
<< "world!" << std::endl;
如何得到如下结果(每个<<
单独一行开始)?
void foo()
std::cout << "Hello, "
<< "world!"
<< std::endl;
一个advice是用//
结束每一行:
void foo()
std::cout << "Hello, " //
<< "world!" //
<< std::endl; //
但是仅使用style options 可以实现这样的缩进吗?
【问题讨论】:
std::cout << "Hello, " << "world!\n";
问题解决了:-)
\n
比 std::endl
更常见
std::endl
仅用于演示目的;如果您使用变量(例如,const std::string s = "world!"
),这同样适用。
【参考方案1】:
https://reviews.llvm.org/D80950 解释了它为什么这样做,当它最初被编写时,clang-format 做出决定,如果我们文字字符串彼此相邻流式传输,即
os << "A" << "B"
会变成
os << "A"
<< "B"
他们会将它们放在单独的一行中,但对于其他任何事情他们都不会
os << "A" << i << "B"
这确实没有任何控制权,在每个流式操作符都被认为太多之后就中断了。
os << "A"
<< i
<< "B"
【讨论】:
以上是关于使用 clang-format 从 C++ 中的新行开始每个 <<的主要内容,如果未能解决你的问题,请参考以下文章
QtCreator:将 QtCreatorCodeStyle 与 clang-format 统一起来
安装了 Xcode 命令行工具的 Mac OS X 中的 clang-format 和 clang-format.py 在哪里?