CrossFramework Library

XBase/TypeTraits.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_TYPETRAITS_HPP)
00007 #else
00008 #define XBASE_INCLUDED_TYPETRAITS_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/Compiler.hpp>
00012 
00013 // type_traitsのインクルード
00014 #if defined(XBASE_COMPILER_MSVC)
00015     #include <type_traits>
00016 #endif
00017 
00018 //------------------------------------------------------------
00019 namespace XBase {
00021 
00022 
00023     struct TypeTraits
00024     {
00025 #if defined(XBASE_COMPILER_MSVC)
00026         template< typename T > 
00027         struct IsPOD { enum { Value = ::std::tr1::is_pod< T >::value }; };
00028 
00029         template< typename T >
00030         struct IsScaler { enum { Value = ::std::tr1::is_scaler< T >::value }; };
00031 #else
00032         // サポートしていないコンパイラでは常にtrueを返す。
00034         template< typename T > struct IsPOD { enum { Value = true }; };
00036         template< typename T > struct IsScaler { enum { Value = true }; };
00037 #endif
00038     };
00040 }
00041 //------------------------------------------------------------
00042 #endif
00043 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義