C++ 检查是否定义了 typedef

标签 c++ compilation typedef preprocessor-directive

<分区>

我正在将一个项目链接到一个库。根据库的版本,一些 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/

相关文章:

rust - DRY for Rust 条件编译功能

javascript - 将编译的 Angular 模板传递给 HereMaps API

c++ - Typedef-name 与 C++ 中的 struct 标记冲突

C++ 静态多态性 (CRTP) 和使用派生类的 typedef

c++ - Qt qrc 资源文件 - 无法加载图标

c++ - 如何在 C++ 中创建目录?

c++ - Threadsafe OpenSSL 在单线程中的使用?

c++ - 如何将结构放入 union 中

java - 在.net中编译java代码

c - c 中的 typedef 和类型等价