有什么方法可以在代码中包含C++标头?

Any way to include C++ headers in co​de?

本文关键字:包含 C++ 标头 代码 什么 方法      更新时间:2023-10-16

有没有办法通过使用变量作为标头的名称来在代码中包含文件?喜欢这个:

const char *ch = "test.h";
/* include it now with the var */ #include ch

如果答案是否定的,是否有任何功能或方法可以做到这一点?

预处理器甚至在编译器启动之前就已经完成了它的工作,所以在编译const char *ch = "test.h";时,你的代码中不再有任何#include

如果答案是否定的,是否有任何功能或方法可以做到这一点?

要回答这个问题,你必须解释你真正想要实现的目标。这是一个经典的 xy 问题:您正在询问您认为的解决方案是什么,但我们不知道您要解决什么问题......

你可以这样做。 虽然我告诫不要这样做。

#define TEST_H "test.h"
#include TEST_H

虽然提出的问题是关于标头的,但"XorTroll Dec 12 '17 at 19:20"的澄清听起来像是可以通过在运行时通过 dlopen() 加载动态共享库来完成的修改。 您要么需要涵盖所有用户控制内容的预编译库,要么需要一个非常复杂的环境,包括 JIT 生成和编译!