Search code examples
c++c++11type-traits

Check if two types are equal in C++


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";
}

Solution

  • 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