Chris@16: Chris@16: // Copyright Aleksey Gurtovoy 2000-2004 Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: // Chris@16: Chris@16: // Preprocessed version of "boost/mpl/apply.hpp" header Chris@16: // -- DO NOT modify by hand! Chris@16: Chris@16: namespace boost { namespace mpl { Chris@16: Chris@16: template< Chris@16: typename F Chris@16: > Chris@16: struct apply0 Chris@16: Chris@16: : apply_wrap0< Chris@16: typename lambda::type Chris@16: Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 1 Chris@16: , apply0 Chris@16: , (F ) Chris@16: ) Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F Chris@16: > Chris@16: struct apply< F,na,na,na,na,na > Chris@16: : apply0 Chris@16: { Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1 Chris@16: > Chris@16: struct apply1 Chris@16: Chris@16: : apply_wrap1< Chris@16: typename lambda::type Chris@16: , T1 Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 2 Chris@16: , apply1 Chris@16: , (F, T1) Chris@16: ) Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1 Chris@16: > Chris@16: struct apply< F,T1,na,na,na,na > Chris@16: : apply1< F,T1 > Chris@16: { Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2 Chris@16: > Chris@16: struct apply2 Chris@16: Chris@16: : apply_wrap2< Chris@16: typename lambda::type Chris@16: , T1, T2 Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 3 Chris@16: , apply2 Chris@16: , (F, T1, T2) Chris@16: ) Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2 Chris@16: > Chris@16: struct apply< F,T1,T2,na,na,na > Chris@16: : apply2< F,T1,T2 > Chris@16: { Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3 Chris@16: > Chris@16: struct apply3 Chris@16: Chris@16: : apply_wrap3< Chris@16: typename lambda::type Chris@16: , T1, T2, T3 Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 4 Chris@16: , apply3 Chris@16: , (F, T1, T2, T3) Chris@16: ) Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3 Chris@16: > Chris@16: struct apply< F,T1,T2,T3,na,na > Chris@16: : apply3< F,T1,T2,T3 > Chris@16: { Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3, typename T4 Chris@16: > Chris@16: struct apply4 Chris@16: Chris@16: : apply_wrap4< Chris@16: typename lambda::type Chris@16: , T1, T2, T3, T4 Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 5 Chris@16: , apply4 Chris@16: , (F, T1, T2, T3, T4) Chris@16: ) Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3, typename T4 Chris@16: > Chris@16: struct apply< F,T1,T2,T3,T4,na > Chris@16: : apply4< F,T1,T2,T3,T4 > Chris@16: { Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3, typename T4 Chris@16: , typename T5 Chris@16: > Chris@16: struct apply5 Chris@16: Chris@16: : apply_wrap5< Chris@16: typename lambda::type Chris@16: , T1, T2, T3, T4, T5 Chris@16: > Chris@16: { Chris@16: BOOST_MPL_AUX_LAMBDA_SUPPORT( Chris@16: 6 Chris@16: , apply5 Chris@16: , (F, T1, T2, T3, T4, T5) Chris@16: ) Chris@16: }; Chris@16: Chris@16: /// primary template (not a specialization!) Chris@16: Chris@16: template< Chris@16: typename F, typename T1, typename T2, typename T3, typename T4 Chris@16: , typename T5 Chris@16: > Chris@16: struct apply Chris@16: : apply5< F,T1,T2,T3,T4,T5 > Chris@16: { Chris@16: }; Chris@16: Chris@16: }} Chris@16: