Używam C++ (nie 11) i przy użyciu niektórych bibliotek, które mają różne typy dla typów danych całkowitych. Czy jest jakiś sposób twierdzić, że dwa typy są tego samego typu? Sam wymyśliłem następujące rozwiązanie .. czy to jest bezpieczne? DziękiPorównaj typedef jest tego samego typu
template<typename T>
struct TypeTest
{
static void Compare(const TypeTest& other) {}
};
typedef unsigned long long UINT64;
typedef unsigned long long UINT_64;
typedef unsigned int UINT_32;
int main()
{
TypeTest<UINT64>::Compare(TypeTest<UINT64>()); // pass
TypeTest<UINT64>::Compare(TypeTest<UINT_64>()); // pass
TypeTest<UINT64>::Compare(TypeTest<UINT_32>()); // fail
}
cppreference ma przykładową implementację 'std :: is_same': http://en.cppreference.com/w/cpp/types/is_same – us2012