【发布时间】:2019-11-16 09:25:37
【问题描述】:
我遇到了可移植性问题,这是因为size_t 在平台之间有所不同(有时它等同于unsigned int,有时等同于unsigned long)
我想写的是:
"if constexpr" / "enable_if" / "whatever" (size_t == unsigned long)
using V = std::variant<unsigned int, size_t>;
else
using V = std::variant<unsigned long, size_t>;
有什么不那么丑的写法?
编译器资源管理器 sn-p 的链接:
https://godbolt.org/z/AZVFEz : 使用 gcc 9.2 64 位 size_t unsigned long
https://godbolt.org/z/wWeCbW :使用 msvc 19.22 32 位 size_t unsigned int
【问题讨论】: