std::is_same
std::is_same(C++11)用于判断两个类型是否相同,注意,这里需要考虑const和volatile的限定,即 T 和const T是不相同的。
std::is_same满足交换律,即std::is_same<A, B>::value == std::is_same<B, A>::value。
可能的实现:
template<class T, class U>
struct is_same : std::false_type{
};
template<class T>
struct is_same<T, T>: std::true_type{
}