首页 > 解决方案 > 如何在编译时判断两个变量是否具有相同的类型?

问题描述

有没有比这更好的方法(或另一种方法)来判断两个变量在编译时是否具有相同的类型:

auto var1 = ..;
auto var2 = ..;
static_assert(std::is_same<decltype(var1), decltype(var2)>::value);

标签: c++c++17

解决方案


有没有比这更好的方法(或另一种方法)来判断两个变量在编译时是否具有相同的类型:

好吧,你可以使用辅助变量模板std::is_same_v

template< class T, class U >
inline constexpr bool is_same_v = is_same<T, U>::value;

然后它会变成

static_assert(std::is_same_v<decltype(var1), decltype(var2)>);

推荐阅读