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: { Chris@16: typedef typename apply_wrap0< Chris@16: typename lambda::type Chris@16: Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply0 Chris@16: { Chris@16: typedef int type; Chris@16: }; Chris@16: Chris@16: template< Chris@16: typename F, typename T1 Chris@16: > Chris@16: struct apply1 Chris@16: Chris@16: { Chris@16: typedef typename apply_wrap1< Chris@16: typename lambda::type Chris@16: , T1 Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply1< int,int > Chris@16: { Chris@16: typedef int type; 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: { Chris@16: typedef typename apply_wrap2< Chris@16: typename lambda::type Chris@16: , T1, T2 Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply2< int,int,int > Chris@16: { Chris@16: typedef int type; 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: { Chris@16: typedef typename apply_wrap3< Chris@16: typename lambda::type Chris@16: , T1, T2, T3 Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply3< int,int,int,int > Chris@16: { Chris@16: typedef int type; 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: { Chris@16: typedef typename apply_wrap4< Chris@16: typename lambda::type Chris@16: , T1, T2, T3, T4 Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply4< int,int,int,int,int > Chris@16: { Chris@16: typedef int type; 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: { Chris@16: typedef typename apply_wrap5< Chris@16: typename lambda::type Chris@16: , T1, T2, T3, T4, T5 Chris@16: >::type type; 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: /// workaround for ETI bug Chris@16: template<> Chris@16: struct apply5< int,int,int,int,int,int > Chris@16: { Chris@16: typedef int type; Chris@16: }; Chris@16: Chris@16: }} Chris@16: