clang-format目前将所有pragma移动到第一列.clang格式之前的一个例子:
for (int i = 0; i < 4; ++i) {
#pragma UNROLL
// ...some code...
}
Run Code Online (Sandbox Code Playgroud)
clang格式后的相同代码:
for (int i = 0; i < 4; ++i) {
#pragma UNROLL
// ...some code...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让clang-format完全忽略pragma行而不改变源代码(即不会混淆源代码// clang-format off
)?例如使用正则表达式?
这与此问题有关(我希望避免安装第三方工具),并希望通过此错误报告解决.
另外,虽然clang-format off
对于带有pragma的行是受到尊重的,但是注释行本身将缩进到pragma 将缩进到的内容(使用clang-format 6.0.0):
for (int i = 0; i < 4; ++i) {
// clang-format off
#pragma UNROLL
// clang-format on
// ...some code...
}
Run Code Online (Sandbox Code Playgroud)
小智 0
如果您只使用很少的编译指示,您可以尝试将它们伪装成常规命令。根据编译器资源管理器,以下内容对编译器具有正确的效果,而格式不会被 clang-format 破坏。
另一个好处是,您可以使用不同的定义,具体取决于编译器(如本问题所示)
#define UNROLL _Pragma("unroll")
void f()
{
volatile int x = 0;
UNROLL for (int i = 0; i < 100; ++i)
{
x = x + i;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
552 次 |
最近记录: |