私はC++(11ではなく)を使用しており、整数データ型に異なる型定義を持つライブラリを使用しています。 2つのtypedefが同じ型であると私が主張できる方法はありますか?私は以下の解決方法を思いつきました。それは安全ですか? ありがとうtypedefと同じ型です
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は 'std :: is_same'のサンプル実装を持っています:http://en.cppreference.com/w/cpp/types/is_same – us2012