【发布时间】:2019-01-02 20:51:16
【问题描述】:
所以我从一个 API 中获取一个变量,我们将其命名为 long foo 并将其传递给另一个 API,该 API 将其作为值:int bar。
我在visual-studio-2017 中,它们实际上是同一件事:https://docs.microsoft.com/en-us/cpp/cpp/data-type-ranges?view=vs-2017
但这会触发:
static_assert(is_same_v<decltype(foo), decltype(bar)>);
因为即使它们实际上相同,它们也不是同一类型。除了使用数字限制库将long 匹配到int 之外,是否有解决方法?
【问题讨论】:
-
static_assert(sizeof(int) == sizeof(long))? -
类型不一样。也许您想知道它们的长度是否相同?
-
如果你想将你的代码移植到其他平台,你应该不假设
int和long是一样的。
标签: visual-studio-2017 c++ visual-studio-2017 int long-integer static-assert