C++检查typedef是否已定义
问题描述:
我正在将项目链接到库。根据库的版本,某些API和typedef是不同的。C++检查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
...
您需要额外写一行,但只写一次。
+0
typedef是在库中定义的,我不能修改库代码。因此我需要我的项目中的所有检查代码。 – 2014-11-14 23:00:08
+2
@MarcoAgnese Lib必须(应该)定义一些宏是什么版本。使用它。 – 2501 2014-11-14 23:11:08
什么样的变量你希望size_type是? – 2014-11-14 22:47:45