在clang tidy中,check [llvm-header-guard]查找LLVM样式的头部保护,但我找不到任何正确的LLVM头部保护样式的示例,特别是给定义的名称结构,{{ 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>
希望这会有所帮助!