【发布时间】:2017-08-23 15:08:54
【问题描述】:
我想包含来自component.h 的component.h.gen。
我已经看到我可以将__FILE__ 与#include 一起使用,如果没有标头保护,则会导致递归包含。
有没有办法附加一个 C 字符串文字并包含结果?这是我迄今为止尝试过的:
#define CAT_IMPL(s1, s2) s1##s2
#define CAT(s1, s2) CAT_IMPL(s1, s2)
#define DO_IT CAT(__FILE__, ".gen")
#include DO_IT
但这会导致与包含自身在内的文件进行相同的递归 - 未使用 ".gen" 部分 - 我在 MSVC 中收到此警告:
警告 C4067:预处理器指令后出现意外标记 - 需要换行符
是否有适用于 gcc/clang/msvc 的解决方案?
请注意,我计划在数百个甚至数千个文件中使用它,并且我想通过复制粘贴相同的代码来简化我的生活 - 这就是我试图让它工作的原因。
【问题讨论】:
-
downvoters - 请解释...
标签: c++ c-preprocessor