basic_bind.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 307 行

HPP
307
字号
// Copyright Peter Dimov 2001// Copyright Aleksey Gurtovoy 2001-2004//// 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)//// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header// -- DO NOT modify by hand!namespace boost { namespace mpl {namespace aux {template<      typename T, typename U1, typename U2, typename U3, typename U4    , typename U5    >struct resolve_bind_arg{    typedef T type;};template<      int N, typename U1, typename U2, typename U3, typename U4, typename U5    >struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >{    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;};} // namespace auxtemplate<      typename F    >struct bind0{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;     public:        typedef typename apply_wrap0<              f_            >::type type;    };};namespace aux {template<      typename F, typename U1, typename U2, typename U3, typename U4    , typename U5    >struct resolve_bind_arg<      bind0<F>, U1, U2, U3, U4, U5    >{    typedef bind0<F> f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(1, bind0)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)template<      typename F, typename T1    >struct bind1{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;     public:        typedef typename apply_wrap1<              f_            , typename t1::type            >::type type;    };};namespace aux {template<      typename F, typename T1, typename U1, typename U2, typename U3    , typename U4, typename U5    >struct resolve_bind_arg<      bind1< F,T1 >, U1, U2, U3, U4, U5    >{    typedef bind1< F,T1 > f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(2, bind1)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)template<      typename F, typename T1, typename T2    >struct bind2{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;     public:        typedef typename apply_wrap2<              f_            , typename t1::type, typename t2::type            >::type type;    };};namespace aux {template<      typename F, typename T1, typename T2, typename U1, typename U2    , typename U3, typename U4, typename U5    >struct resolve_bind_arg<      bind2< F,T1,T2 >, U1, U2, U3, U4, U5    >{    typedef bind2< F,T1,T2 > f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(3, bind2)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)template<      typename F, typename T1, typename T2, typename T3    >struct bind3{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;     public:        typedef typename apply_wrap3<              f_            , typename t1::type, typename t2::type, typename t3::type            >::type type;    };};namespace aux {template<      typename F, typename T1, typename T2, typename T3, typename U1    , typename U2, typename U3, typename U4, typename U5    >struct resolve_bind_arg<      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5    >{    typedef bind3< F,T1,T2,T3 > f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(4, bind3)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)template<      typename F, typename T1, typename T2, typename T3, typename T4    >struct bind4{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;     public:        typedef typename apply_wrap4<              f_            , typename t1::type, typename t2::type, typename t3::type            , typename t4::type            >::type type;    };};namespace aux {template<      typename F, typename T1, typename T2, typename T3, typename T4    , typename U1, typename U2, typename U3, typename U4, typename U5    >struct resolve_bind_arg<      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5    >{    typedef bind4< F,T1,T2,T3,T4 > f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(5, bind4)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)template<      typename F, typename T1, typename T2, typename T3, typename T4    , typename T5    >struct bind5{    template<          typename U1 = na, typename U2 = na, typename U3 = na        , typename U4 = na, typename U5 = na        >    struct apply    {     private:        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;     public:        typedef typename apply_wrap5<              f_            , typename t1::type, typename t2::type, typename t3::type            , typename t4::type, typename t5::type            >::type type;    };};namespace aux {template<      typename F, typename T1, typename T2, typename T3, typename T4    , typename T5, typename U1, typename U2, typename U3, typename U4    , typename U5    >struct resolve_bind_arg<      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5    >{    typedef bind5< F,T1,T2,T3,T4,T5 > f_;    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;};} // namespace auxBOOST_MPL_AUX_ARITY_SPEC(6, bind5)BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?