Simplified StorageType<>

This commit is contained in:
Pavel Kirienko 2014-02-24 21:46:18 +04:00
parent 2b8996b82c
commit a24cbcc493

View File

@ -18,22 +18,13 @@ template <>
struct IntegerBitLen<0> { enum { Result = 0 }; };
// TODO: fix
template <typename T, typename Enable = void>
struct StorageTypeImpl { typedef T Type; };
struct StorageType { typedef T Type; };
template <typename T>
struct StorageTypeImpl<T, typename EnableIfType<typename T::StorageType>::Type>
struct StorageType<T, typename EnableIfType<typename T::StorageType>::Type>
{
typedef typename T::StorageType Type;
};
template <typename T>
class StorageType : public T
{
StorageType();
public:
typedef typename StorageTypeImpl<T>::Type Type;
};
}