什么是适当的LLVM头部保护风格?

时间:2017-05-09 22:37:47

标签: c++ llvm llvm-clang include-guards clang-tidy

在clang tidy中,check [llvm-header-guard]查找LLVM样式的头部保护,但我找不到任何正确的LLVM头部保护样式的示例,特别是给定义的名称结构,{{ 3}}页面没有提到任何内容。

3 个答案:

答案 0 :(得分:3)

据推测,LLVM代码库遵循LLVM编码标准,因此可以简单地查看一些LLVM头文件,以了解防护的外观。以下是我查看的一些随机LLVM头文件:

https://github.com/llvm-mirror/llvm/blob/master/include/llvm/CodeGen/SelectionDAG.h

https://github.com/llvm-mirror/llvm/blob/master/include/llvm/Support/AlignOf.h

根据这些文件,我认为标题保护看起来像这样:

#ifndef LLVM_CODEGEN_SELECTIONDAG_H
#define LLVM_CODEGEN_SELECTIONDAG_H
...
#endif

答案 1 :(得分:3)

查看单元测试:

它似乎接受了常用模式的一些变化。对于名为include/llvm/ADT/foo.h的文件,约定似乎是:

#ifndef LLVM_ADT_FOO_H
#define LLVM_ADT_FOO_H
//...
#endif // LLVM_ADT_FOO_H

答案 2 :(得分:0)

LLVM能够检测到标头并对其满意的正确样式是采用包含标头的路径,将其转换为大写,用下划线替换目录分隔符,并用下划线替换文件扩展名中的点。

例如,如果您使用+{},则标题为:

#include <dopelib/dopestuff/whatitisyo.h>

希望这会有所帮助!