Check if two types are equal in C++

kyb picture kyb · Sep 23, 2016 · Viewed 12.9k times · Source

How to check if types are equal in C++11?

 std::uint32_t == unsigned;  //#1

And another snippet

template<typename T> struct A{ 
  string s = T==unsigned ? "unsigned" : "other";
}

Answer

user6420285 picture user6420285 · Sep 23, 2016

You can use std::is_same<T,U>::value from C++11 onwards.

Here, T, and U are the types, and value will be true if they are equivalent, and false if they are not.

Note that this is evaluated at compile time.

See http://en.cppreference.com/w/cpp/types/is_same