#ifndef META_HS_META_HS_HPP #define META_HS_META_HS_HPP // Copyright Abel Sinkovics (abel@sinkovics.hu) 2012. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef DEFINE_LAZY #error DEFINE_LAZY already defined #endif #define DEFINE_LAZY(r, unused, name) \ template \ struct BOOST_PP_CAT(lazy_, name) : \ boost::mpl::name \ {}; BOOST_PP_SEQ_FOR_EACH(DEFINE_LAZY, ~, (plus) (minus) (times) (divides) (less) (less_equal) (greater) (greater_equal) (equal_to) (not_equal_to) ) #undef DEFINE_LAZY typedef builder<> ::import2, lazy_plus>::type ::import2, lazy_minus>::type ::import2, lazy_times>::type ::import2, lazy_divides>::type ::import2, lazy_less>::type ::import2, lazy_less_equal>::type ::import2','.'>, lazy_greater>::type ::import2','=','.'>, lazy_greater_equal>::type ::import2, lazy_equal_to>::type ::import2, lazy_not_equal_to>::type meta_hs; #endif