CrossFramework Library
|
00001 00006 #if defined(XBASE_INCLUDED_SCALERCLASS_HPP) 00007 #else 00008 #define XBASE_INCLUDED_SCALERCLASS_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/StaticAssert.hpp> 00012 #include <XBase/ScalerStruct.hpp> 00013 #include <XBase/TypeTraits.hpp> 00014 00015 //------------------------------------------------------------ 00016 namespace XBase { 00018 00019 00023 template< typename T > 00024 class ScalerClass : public ScalerStruct<T> 00025 { 00026 public: 00028 00029 00030 ScalerClass() : SuperClass() {} 00031 00033 ScalerClass( const typename ScalerStruct<T>::ValueType aValue ) 00034 { 00035 SuperClass::value_ = aValue; 00036 }; 00038 00039 private: 00040 typedef ::XBase::ScalerStruct<T> SuperClass; // 親クラスのエイリアス。 00041 XBASE_STATIC_ASSERT( sizeof( SuperClass ) == sizeof( ValueType ) ); // サイズが同じであることを保証。 00042 }; 00044 } 00045 //------------------------------------------------------------ 00046 #endif 00047 // EOF