Mirror reflection library 0.5.13
|
00001 00010 #ifndef MIRROR_META_PROG_NOT_1011291729_HPP 00011 #define MIRROR_META_PROG_NOT_1011291729_HPP 00012 00013 00014 #include <mirror/meta_prog/forward_decl.hpp> 00015 00016 MIRROR_NAMESPACE_BEGIN 00017 namespace mp { 00018 00019 template <bool Value> 00020 struct not_<std::integral_constant<bool, Value> > 00021 : public std::integral_constant<bool, !Value> 00022 { }; 00023 00024 #ifdef MIRROR_DOCUMENTATION_ONLY 00025 00026 00031 template <typename BooleanConstant> 00032 struct not_ : public BooleanConstant 00033 { }; 00034 #else 00035 template <typename X> 00036 struct not_ 00037 : public std::integral_constant<bool, !X::value> 00038 { }; 00039 #endif 00040 00041 00042 } // namespace mp 00043 MIRROR_NAMESPACE_END 00044 00045 #endif //include guard 00046