CrossFramework Library

XBase/Bool.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_BOOL_HPP)
00007 #else
00008 #define XBASE_INCLUDED_BOOL_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <XBase/BuiltInTypes.hpp>
00012 
00013 //------------------------------------------------------------
00014 namespace XBase {
00016 
00017 
00020     template< typename DATA_TYPE >
00021     struct BoolPODTmpl
00022     {
00023         //============================================================
00024         // private
00025         DATA_TYPE val_;
00026 
00027         //============================================================
00028         // public
00030 
00031         typedef DATA_TYPE DataType;
00033         
00035 
00036 
00045         BoolPODTmpl< DataType >& operator=( const bool aVal )
00046         {
00047             val_ = DataType( aVal ? 1 : 0 );
00048             return *this;
00049         }
00050         
00062         operator bool()const
00063         {
00064             return val_ != 0;
00065         }
00067     };
00068     
00077     template< typename DATA_TYPE >
00078     class BoolTmpl : public BoolPODTmpl< DATA_TYPE >
00079     {
00080     public:
00082 
00083 
00084         BoolTmpl()
00085         {
00086             BoolPODTmpl< DATA_TYPE >::val_ = false;
00087         }
00088     
00090         BoolTmpl( const bool aVal )
00091         {
00092             BoolPODTmpl< DATA_TYPE >::val_ = aVal;
00093         }
00095     };
00096 
00098 
00099     typedef BoolPODTmpl< u8  > BoolPOD8;  
00100     typedef BoolPODTmpl< u16 > BoolPOD16; 
00101     typedef BoolPODTmpl< u32 > BoolPOD32; 
00102     typedef BoolPODTmpl< u64 > BoolPOD64; 
00103     typedef BoolTmpl< u8  >    Bool8;  
00104     typedef BoolTmpl< u16 >    Bool16; 
00105     typedef BoolTmpl< u32 >    Bool32; 
00106     typedef BoolTmpl< u64 >    Bool64; 
00107     typedef Bool8    Bool;    
00108     typedef BoolPOD8 BoolPOD; 
00109 
00110 
00112 }
00113 //------------------------------------------------------------
00114 #endif
00115 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義