12ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
22ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// Copyright Aleksey Gurtovoy 2000-2004
32ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh//
42ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// Distributed under the Boost Software License, Version 1.0.
52ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// (See accompanying file LICENSE_1_0.txt or copy at
62ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// http://www.boost.org/LICENSE_1_0.txt)
72ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh//
82ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
92ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// Preprocessed version of "boost/mpl/less.hpp" header
102ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh// -- DO NOT modify by hand!
112ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
122ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehnamespace boost { namespace mpl {
132ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
142ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate<
152ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh      typename Tag1
162ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    , typename Tag2
172ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    >
182ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehstruct less_impl
192ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    : if_c<
202ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
212ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
222ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh            )
232ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
242ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
252ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
262ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        >::type
272ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
282ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
292ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
302ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh/// for Digital Mars C++/compilers with no CTPS/TTP support
312ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate<> struct less_impl< na,na >
322ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
332ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    template< typename U1, typename U2 > struct apply
342ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    {
352ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        typedef apply type;
362ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        BOOST_STATIC_CONSTANT(int, value  = 0);
372ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    };
382ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
392ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
402ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate< typename Tag > struct less_impl< na,Tag >
412ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
422ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    template< typename U1, typename U2 > struct apply
432ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    {
442ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        typedef apply type;
452ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        BOOST_STATIC_CONSTANT(int, value  = 0);
462ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    };
472ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
482ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
492ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate< typename Tag > struct less_impl< Tag,na >
502ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
512ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    template< typename U1, typename U2 > struct apply
522ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    {
532ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        typedef apply type;
542ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        BOOST_STATIC_CONSTANT(int, value  = 0);
552ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    };
562ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
572ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
582ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate< typename T > struct less_tag
592ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
602ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    typedef typename T::tag type;
612ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
622ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
632ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate<
642ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh      typename BOOST_MPL_AUX_NA_PARAM(N1)
652ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    , typename BOOST_MPL_AUX_NA_PARAM(N2)
662ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    >
672ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehstruct less
682ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
692ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    : less_impl<
702ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh          typename less_tag<N1>::type
712ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        , typename less_tag<N2>::type
722ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        >::template apply< N1,N2 >::type
732ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
742ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
752ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
762ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
772ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
782ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew HsiehBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
792ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
802ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh}}
812ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
822ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehnamespace boost { namespace mpl {
832ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
842ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehtemplate<>
852ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsiehstruct less_impl< integral_c_tag,integral_c_tag >
862ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh{
872ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    template< typename N1, typename N2 > struct apply
882ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
892ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
902ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    {
912ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh    };
922ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh};
932ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh
942ca0e41376e99ad53c02fdb5333339ad3dcad19fAndrew Hsieh}}
95