C++ 参数化 header 包含

C++ parameterized header inclusion

我正在从事一个图像处理项目,并为不同的特征提取方法创建了许多库。我还有另一个使用这些库之一的库。

我不想包含所有这些库,因此我想根据配置文件定义的参数有选择地包含库。配置文件存储参数及其值,如下所示:

lib: "a"

是否可以通过从该配置文件中读取参数来选择性地包含 "library a"?

您可以使用#ifdef #ifndef #endif 指令在编译时包含条件

#define TypeA
#define TypeB


#ifdef TypeA
#include <lib.h>
#endif

#ifdef TypeB
#include <stdio.h>
#endif