【发布时间】:2020-01-01 12:36:41
【问题描述】:
在 C++ 中,固定宽度整数定义为 optional,但我似乎找不到推荐的方法来检查它们是否实际定义。
检查固定宽度整数是否可用的便携方法是什么?
【问题讨论】:
-
好像没有feature test macro,不过我想你可以做
#if defined(INT8_MIN) -
如果 std 库没有为此提供功能测试宏,那么您可以检查您使用的工具链是否为它提供了一个或允许您定义自己的测试。例如,CMake 允许您通过编译定义的
cpp文件并根据编译是否失败或未设置您可以定义的宏来测试某些语言功能。 -
如果您更喜欢 autoconf 而不是 cmake,它会为它们预定义测试。
AC_TYPE_INT8_T等 -
如果有人在stdint 中有任何标签分数,则应将IMO cstdint 指定为同义词(stackoverflow.com/tags/stdint/synonyms)。我认为我们不需要单独的 C 和 C++ 标记来处理这个晦涩难懂的东西。题主标签就够了。
-
@PeterCordes 这次成功了:stackoverflow.com/tags/stdint/synonyms
标签: c++ c++11 types stdint cstdint