我遇到了一个可移植性问题,因为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>;
有没有更好点的写法?
编译器资源链接:
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