【C++】template 統合スレ -- STL/Boost/Loki, etc.
■ このスレッドは過去ログ倉庫に格納されています
0516質問
NGNGtemplate<int v> struct Int2Type{
public: enum { Value = v };
};
template<typename T1, typename T2, bool isT1GreaterThanT2> struct SizeCompareRaw {
typedef int Greater;
typedef int Lesser;
};
template<typename T1, typename T2> struct SizeCompareRaw<T1, T2, true> {
typedef T1 Greater;
typedef T2 Lesser;
};
template<typename T1, typename T2> struct SizeCompareRaw<T1, T2, false> {
typedef T2 Greater;
typedef T1 Lesser;
};
template<typename T1, typename T2> struct SizeCompare{
typedef SizeCompareRaw<T1, T2, Int2Type<(sizeof(T1) > sizeof(T2))>::Value >::Greater Greater;
typedef SizeCompareRaw<T1, T2, Int2Type<(sizeof(T1) > sizeof(T2))>::Value >::Lesser Lesser;
};
typedef SizeCompare<SizeCompare<int, char>::Greater, long long>::Greater GreatestType;
もしあったら、もっと単純できれいな実装でしょうか?
■ このスレッドは過去ログ倉庫に格納されています