12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #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 <builder.hpp>
- #include <boost/mpl/plus.hpp>
- #include <boost/mpl/minus.hpp>
- #include <boost/mpl/times.hpp>
- #include <boost/mpl/divides.hpp>
- #include <boost/mpl/less.hpp>
- #include <boost/mpl/less_equal.hpp>
- #include <boost/mpl/greater.hpp>
- #include <boost/mpl/greater_equal.hpp>
- #include <boost/mpl/equal_to.hpp>
- #include <boost/mpl/not_equal_to.hpp>
- #include <boost/preprocessor/cat.hpp>
- #include <boost/preprocessor/seq/for_each.hpp>
- #ifdef DEFINE_LAZY
- #error DEFINE_LAZY already defined
- #endif
- #define DEFINE_LAZY(r, unused, name) \
- template <class A, class B> \
- struct BOOST_PP_CAT(lazy_, name) : \
- boost::mpl::name<typename A::type, typename B::type> \
- {};
- 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<boost::metaparse::string<'.','+','.'>, lazy_plus>::type
- ::import2<boost::metaparse::string<'.','-','.'>, lazy_minus>::type
- ::import2<boost::metaparse::string<'.','*','.'>, lazy_times>::type
- ::import2<boost::metaparse::string<'.','/','.'>, lazy_divides>::type
- ::import2<boost::metaparse::string<'.','<','.'>, lazy_less>::type
- ::import2<boost::metaparse::string<'.','<','=','.'>, lazy_less_equal>::type
- ::import2<boost::metaparse::string<'.','>','.'>, lazy_greater>::type
- ::import2<boost::metaparse::string<'.','>','=','.'>, lazy_greater_equal>::type
- ::import2<boost::metaparse::string<'.','=','=','.'>, lazy_equal_to>::type
- ::import2<boost::metaparse::string<'.','/','=','.'>, lazy_not_equal_to>::type
- meta_hs;
- #endif
|