<分区>
我正在将一个项目链接到一个库。根据库的版本,一些 API 和 typedef 是不同的。
无法提取库版本。我想在编译时确定这个库的版本并定义一个相应的预处理器变量。
更准确地说,我想要如下内容
#ifdef size_type
#define LIBRARY_VERSION 1.0
#else
#define LIBRARY_VERSION 2.0
#endif
问题是 size_type 不是宏,而是使用 typedef 定义的类型。 我该怎么做?
<分区>
我正在将一个项目链接到一个库。根据库的版本,一些 API 和 typedef 是不同的。
无法提取库版本。我想在编译时确定这个库的版本并定义一个相应的预处理器变量。
更准确地说,我想要如下内容
#ifdef size_type
#define LIBRARY_VERSION 1.0
#else
#define LIBRARY_VERSION 2.0
#endif
问题是 size_type 不是宏,而是使用 typedef 定义的类型。 我该怎么做?
最佳答案
在定义 typedef 的位置使用伴随的宏。
typedef size_t size_type ;
#define size_type_defined
#ifdef size_type_defined
#define LIBRARY_VERSION 1.0
#else
...
您将需要多写一行,但只需写一次。
关于C++ 检查是否定义了 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26940124/