⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 full_lambda.hpp

📁 正则表达式源代码
💻 HPP
字号:
// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header// see the original for copyright informationnamespace boost {namespace mpl {template<      typename T    , typename Protect = false_        >struct lambda_impl{    typedef false_ is_le;    typedef T type;};template<      typename T        >struct lambda    : lambda_impl< T,false_ >{};namespace aux {template<      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false    , bool C5 = false    >struct lambda_or    : true_{};template<>struct lambda_or< false,false,false,false,false >    : false_{};} // namespace auxtemplate< int N, typename Protect >struct lambda_impl< arg<N>,Protect >{    typedef true_ is_le;    typedef arg<N> type;};template<      typename F    , typename Protect    >struct lambda_impl<      bind0<F>    , Protect     >{    typedef false_ is_le;    typedef bind0<          F        > type;};template<      template< typename P1 > class F    , typename T1    >struct lambda< F<T1> >    : lambda_impl< F<T1>,true_ >{};namespace aux {template<      typename IsLE, typename Protect    , template< typename P1 > class F    , typename L1    >struct le_result1{    typedef F<          typename L1::type        > type;};template<      template< typename P1 > class F    , typename L1    >struct le_result1< true_,false_,F,L1 >{    typedef bind1<          quote1<F>        , typename L1::type        > type;};template<      template< typename P1 > class F    , typename L1    >struct le_result1< true_,true_,F,L1 >{    typedef protect< bind1<          quote1<F>        , typename L1::type        > > type;};} // namespace auxtemplate<      template< typename P1 > class F    , typename T1    , typename Protect    >struct lambda_impl<       F<T1>, Protect     >{    typedef lambda_impl<T1> l1;    typedef aux::lambda_or<          l1::is_le::value        > is_le;    typedef typename aux::le_result1<          typename is_le::type        , Protect        , F        , l1        >::type type;};template<      typename F, typename T1    , typename Protect    >struct lambda_impl<      bind1< F,T1 >    , Protect     >{    typedef false_ is_le;    typedef bind1<          F        , T1        > type;};template<      template< typename P1, typename P2 > class F    , typename T1, typename T2    >struct lambda< F<T1,T2> >    : lambda_impl< F<T1,T2>,true_ >{};namespace aux {template<      typename IsLE, typename Protect    , template< typename P1, typename P2 > class F    , typename L1, typename L2    >struct le_result2{    typedef F<          typename L1::type, typename L2::type        > type;};template<      template< typename P1, typename P2 > class F    , typename L1, typename L2    >struct le_result2< true_,false_,F,L1,L2 >{    typedef bind2<          quote2<F>        , typename L1::type, typename L2::type        > type;};template<      template< typename P1, typename P2 > class F    , typename L1, typename L2    >struct le_result2< true_,true_,F,L1,L2 >{    typedef protect< bind2<          quote2<F>        , typename L1::type, typename L2::type        > > type;};} // namespace auxtemplate<      template< typename P1, typename P2 > class F    , typename T1, typename T2    , typename Protect    >struct lambda_impl<       F< T1,T2 >, Protect     >{    typedef lambda_impl<T1> l1;    typedef lambda_impl<T2> l2;        typedef aux::lambda_or<          l1::is_le::value, l2::is_le::value        > is_le;    typedef typename aux::le_result2<          typename is_le::type        , Protect        , F        , l1, l2        >::type type;};template<      typename F, typename T1, typename T2    , typename Protect    >struct lambda_impl<      bind2< F,T1,T2 >    , Protect     >{    typedef false_ is_le;    typedef bind2<          F        , T1, T2        > type;};template<      template< typename P1, typename P2, typename P3 > class F    , typename T1, typename T2, typename T3    >struct lambda< F<T1,T2,T3> >    : lambda_impl< F<T1,T2,T3>,true_ >{};namespace aux {template<      typename IsLE, typename Protect    , template< typename P1, typename P2, typename P3 > class F    , typename L1, typename L2, typename L3    >struct le_result3{    typedef F<          typename L1::type, typename L2::type, typename L3::type        > type;};template<      template< typename P1, typename P2, typename P3 > class F    , typename L1, typename L2, typename L3    >struct le_result3< true_,false_,F,L1,L2,L3 >{    typedef bind3<          quote3<F>        , typename L1::type, typename L2::type, typename L3::type        > type;};template<      template< typename P1, typename P2, typename P3 > class F    , typename L1, typename L2, typename L3    >struct le_result3< true_,true_,F,L1,L2,L3 >{    typedef protect< bind3<          quote3<F>        , typename L1::type, typename L2::type, typename L3::type        > > type;};} // namespace auxtemplate<      template< typename P1, typename P2, typename P3 > class F    , typename T1, typename T2, typename T3    , typename Protect    >struct lambda_impl<       F< T1,T2,T3 >, Protect     >{    typedef lambda_impl<T1> l1;    typedef lambda_impl<T2> l2;    typedef lambda_impl<T3> l3;        typedef aux::lambda_or<          l1::is_le::value, l2::is_le::value, l3::is_le::value        > is_le;    typedef typename aux::le_result3<          typename is_le::type        , Protect        , F        , l1, l2, l3        >::type type;};template<      typename F, typename T1, typename T2, typename T3    , typename Protect    >struct lambda_impl<      bind3< F,T1,T2,T3 >    , Protect     >{    typedef false_ is_le;    typedef bind3<          F        , T1, T2, T3        > type;};template<      template< typename P1, typename P2, typename P3, typename P4 > class F    , typename T1, typename T2, typename T3, typename T4    >struct lambda< F<T1,T2,T3,T4> >    : lambda_impl< F<T1,T2,T3,T4>,true_ >{};namespace aux {template<      typename IsLE, typename Protect    , template< typename P1, typename P2, typename P3, typename P4 > class F    , typename L1, typename L2, typename L3, typename L4    >struct le_result4{    typedef F<          typename L1::type, typename L2::type, typename L3::type        , typename L4::type        > type;};template<      template< typename P1, typename P2, typename P3, typename P4 > class F    , typename L1, typename L2, typename L3, typename L4    >struct le_result4< true_,false_,F,L1,L2,L3,L4 >{    typedef bind4<          quote4<F>        , typename L1::type, typename L2::type, typename L3::type        , typename L4::type        > type;};template<      template< typename P1, typename P2, typename P3, typename P4 > class F    , typename L1, typename L2, typename L3, typename L4    >struct le_result4< true_,true_,F,L1,L2,L3,L4 >{    typedef protect< bind4<          quote4<F>        , typename L1::type, typename L2::type, typename L3::type        , typename L4::type        > > type;};} // namespace auxtemplate<      template< typename P1, typename P2, typename P3, typename P4 > class F    , typename T1, typename T2, typename T3, typename T4    , typename Protect    >struct lambda_impl<       F< T1,T2,T3,T4 >, Protect     >{    typedef lambda_impl<T1> l1;    typedef lambda_impl<T2> l2;    typedef lambda_impl<T3> l3;    typedef lambda_impl<T4> l4;        typedef aux::lambda_or<          l1::is_le::value, l2::is_le::value, l3::is_le::value        , l4::is_le::value        > is_le;    typedef typename aux::le_result4<          typename is_le::type        , Protect        , F        , l1, l2, l3, l4        >::type type;};template<      typename F, typename T1, typename T2, typename T3, typename T4    , typename Protect    >struct lambda_impl<      bind4< F,T1,T2,T3,T4 >    , Protect     >{    typedef false_ is_le;    typedef bind4<          F        , T1, T2, T3, T4        > type;};template<      template<          typename P1, typename P2, typename P3, typename P4        , typename P5        >      class F    , typename T1, typename T2, typename T3, typename T4, typename T5    >struct lambda< F<T1,T2,T3,T4,T5> >    : lambda_impl< F<T1,T2,T3,T4,T5>,true_ >{};namespace aux {template<      typename IsLE, typename Protect    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F    , typename L1, typename L2, typename L3, typename L4, typename L5    >struct le_result5{    typedef F<          typename L1::type, typename L2::type, typename L3::type        , typename L4::type, typename L5::type        > type;};template<      template<          typename P1, typename P2, typename P3, typename P4        , typename P5        >      class F    , typename L1, typename L2, typename L3, typename L4, typename L5    >struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >{    typedef bind5<          quote5<F>        , typename L1::type, typename L2::type, typename L3::type        , typename L4::type, typename L5::type        > type;};template<      template<          typename P1, typename P2, typename P3, typename P4        , typename P5        >      class F    , typename L1, typename L2, typename L3, typename L4, typename L5    >struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >{    typedef protect< bind5<          quote5<F>        , typename L1::type, typename L2::type, typename L3::type        , typename L4::type, typename L5::type        > > type;};} // namespace auxtemplate<      template<          typename P1, typename P2, typename P3, typename P4        , typename P5        >      class F    , typename T1, typename T2, typename T3, typename T4, typename T5    , typename Protect    >struct lambda_impl<       F< T1,T2,T3,T4,T5 >, Protect     >{    typedef lambda_impl<T1> l1;    typedef lambda_impl<T2> l2;    typedef lambda_impl<T3> l3;    typedef lambda_impl<T4> l4;    typedef lambda_impl<T5> l5;        typedef aux::lambda_or<          l1::is_le::value, l2::is_le::value, l3::is_le::value        , l4::is_le::value, l5::is_le::value        > is_le;    typedef typename aux::le_result5<          typename is_le::type        , Protect        , F        , l1, l2, l3, l4, l5        >::type type;};template<      typename F, typename T1, typename T2, typename T3, typename T4    , typename T5    , typename Protect    >struct lambda_impl<      bind5< F,T1,T2,T3,T4,T5 >    , Protect     >{    typedef false_ is_le;    typedef bind5<          F        , T1, T2, T3, T4, T5        > type;};// special case for 'protect'template< typename T, typename Protect >struct lambda_impl< protect<T>,Protect >{    typedef false_ is_le;    typedef protect<T> type;};// specializations for main 'bind', 'bind1st' and 'bind2nd' formstemplate<      typename F, typename T1, typename T2, typename T3, typename T4    , typename T5    , typename Protect    >struct lambda_impl<      bind< F,T1,T2,T3,T4,T5 >    , Protect         >{    typedef false_ is_le;    typedef bind< F,T1,T2,T3,T4,T5 > type;};template<      typename F, typename T    , typename Protect    >struct lambda_impl< bind1st<F,T>,Protect >{    typedef false_ is_le;    typedef bind1st< F,T > type;};template<      typename F, typename T    , typename Protect    >struct lambda_impl< bind2nd<F,T>,Protect >{    typedef false_ is_le;    typedef bind2nd< F,T > type;};} // namespace mpl} // namespace boost

⌨️ 快捷键说明

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