00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_MPL_BOOL_HPP_ 00013 #define ECL_MPL_BOOL_HPP_ 00014 00015 /***************************************************************************** 00016 ** Namespaces 00017 *****************************************************************************/ 00018 00019 namespace ecl { 00020 00021 /***************************************************************************** 00022 ** Using 00023 *****************************************************************************/ 00024 00031 template < bool x > 00032 class Bool { 00033 public: 00034 static bool const value = x; 00035 typedef Bool<x> type; 00036 typedef bool value_type; 00037 operator bool() const { return x; } 00038 virtual ~Bool(){}; 00039 }; 00040 00041 typedef Bool<false> False; 00042 typedef Bool<true> True; 00044 } // namespace ecl 00045 00046 #endif /* ECL_MPL_BOOL_HPP_ */