Chris@16: /*============================================================================== Chris@16: Copyright (c) 2005-2010 Joel de Guzman Chris@16: Copyright (c) 2010 Thomas Heller Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: ==============================================================================*/ Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<2> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<2> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 1 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<3> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<3> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 2 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<4> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<4> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 3 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<5> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<5> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 4 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<6> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<6> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 5 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<7> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<7> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 6 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<8> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<8> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 7 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<9> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<9> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 8 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<10> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<10> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 9 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<11> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<11> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 10 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<12> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<12> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 11 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<13> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<13> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 12 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<14> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<14> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 13 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<15> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<15> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 14 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<16> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<16> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 15 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<17> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<17> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 16 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<18> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<18> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 17 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<19> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<19> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 18 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<20> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<20> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 19 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<21> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<21> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 20 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<22> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<22> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 21 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<23> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<23> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 22 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<24> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<24> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 23 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<25> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<25> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 24 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<26> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<26> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 25 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<27> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<27> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 26 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<28> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<28> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 27 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<29> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<29> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 28 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<30> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<30> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 29 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<31> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<31> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 30 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<32> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<32> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 31 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<33> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<33> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 32 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<34> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<34> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 33 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<35> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<35> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 34 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<36> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<36> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 35 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<37> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<37> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 36 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<38> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<38> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 37 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<39> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<39> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 38 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<40> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<40> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 39 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<41> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<41> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 40 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<42> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<42> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 41 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<43> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<43> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 42 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<44> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<44> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 43 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<45> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<45> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 44 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<46> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<46> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 45 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<47> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<47> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 46 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<48> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 47 >::type >::type case47; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type >::type case_label47; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label47::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 47>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<48> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 47 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<49> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 47 >::type >::type case47; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type >::type case_label47; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 48 >::type >::type case48; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type >::type case_label48; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label47::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 47>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label48::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 48>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<49> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 47 >::type >::type case47; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type >::type case_label47; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label47::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 47>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 48 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: } Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<50> Chris@16: , mpl::false_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 47 >::type >::type case47; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type >::type case_label47; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 48 >::type >::type case48; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type >::type case_label48; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 49 >::type >::type case49; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case49 , 0 >::type >::type >::type case_label49; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label47::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 47>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label48::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 48>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label49::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 49>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: } Chris@16: } Chris@16: template Chris@16: result_type Chris@16: evaluate( Chris@16: Context const & ctx Chris@16: , Cond const & cond Chris@16: , Cases const & cases Chris@16: , mpl::int_<50> Chris@16: , mpl::true_ Chris@16: ) const Chris@16: { Chris@16: typedef Chris@16: typename proto::result_of::flatten::type Chris@16: flat_view_type; Chris@16: typedef Chris@16: typename fusion::result_of::begin::type Chris@16: flat_view_begin; Chris@16: flat_view_type flat_view(proto::flatten(cases)); Chris@16: typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 0 >::type >::type case0; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case0 , 0 >::type >::type >::type case_label0; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 1 >::type >::type case1; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case1 , 0 >::type >::type >::type case_label1; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 2 >::type >::type case2; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case2 , 0 >::type >::type >::type case_label2; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 3 >::type >::type case3; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case3 , 0 >::type >::type >::type case_label3; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 4 >::type >::type case4; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case4 , 0 >::type >::type >::type case_label4; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 5 >::type >::type case5; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case5 , 0 >::type >::type >::type case_label5; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 6 >::type >::type case6; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case6 , 0 >::type >::type >::type case_label6; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 7 >::type >::type case7; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case7 , 0 >::type >::type >::type case_label7; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 8 >::type >::type case8; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case8 , 0 >::type >::type >::type case_label8; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 9 >::type >::type case9; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case9 , 0 >::type >::type >::type case_label9; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 10 >::type >::type case10; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case10 , 0 >::type >::type >::type case_label10; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 11 >::type >::type case11; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case11 , 0 >::type >::type >::type case_label11; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 12 >::type >::type case12; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case12 , 0 >::type >::type >::type case_label12; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 13 >::type >::type case13; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case13 , 0 >::type >::type >::type case_label13; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 14 >::type >::type case14; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case14 , 0 >::type >::type >::type case_label14; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 15 >::type >::type case15; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case15 , 0 >::type >::type >::type case_label15; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 16 >::type >::type case16; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case16 , 0 >::type >::type >::type case_label16; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 17 >::type >::type case17; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case17 , 0 >::type >::type >::type case_label17; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 18 >::type >::type case18; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case18 , 0 >::type >::type >::type case_label18; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 19 >::type >::type case19; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case19 , 0 >::type >::type >::type case_label19; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 20 >::type >::type case20; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case20 , 0 >::type >::type >::type case_label20; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 21 >::type >::type case21; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case21 , 0 >::type >::type >::type case_label21; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 22 >::type >::type case22; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case22 , 0 >::type >::type >::type case_label22; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 23 >::type >::type case23; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case23 , 0 >::type >::type >::type case_label23; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 24 >::type >::type case24; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case24 , 0 >::type >::type >::type case_label24; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 25 >::type >::type case25; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case25 , 0 >::type >::type >::type case_label25; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 26 >::type >::type case26; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case26 , 0 >::type >::type >::type case_label26; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 27 >::type >::type case27; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case27 , 0 >::type >::type >::type case_label27; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 28 >::type >::type case28; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case28 , 0 >::type >::type >::type case_label28; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 29 >::type >::type case29; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case29 , 0 >::type >::type >::type case_label29; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 30 >::type >::type case30; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case30 , 0 >::type >::type >::type case_label30; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 31 >::type >::type case31; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case31 , 0 >::type >::type >::type case_label31; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 32 >::type >::type case32; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case32 , 0 >::type >::type >::type case_label32; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 33 >::type >::type case33; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case33 , 0 >::type >::type >::type case_label33; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 34 >::type >::type case34; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case34 , 0 >::type >::type >::type case_label34; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 35 >::type >::type case35; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case35 , 0 >::type >::type >::type case_label35; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 36 >::type >::type case36; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case36 , 0 >::type >::type >::type case_label36; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 37 >::type >::type case37; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case37 , 0 >::type >::type >::type case_label37; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 38 >::type >::type case38; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case38 , 0 >::type >::type >::type case_label38; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 39 >::type >::type case39; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case39 , 0 >::type >::type >::type case_label39; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 40 >::type >::type case40; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case40 , 0 >::type >::type >::type case_label40; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 41 >::type >::type case41; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case41 , 0 >::type >::type >::type case_label41; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 42 >::type >::type case42; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case42 , 0 >::type >::type >::type case_label42; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 43 >::type >::type case43; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case43 , 0 >::type >::type >::type case_label43; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 44 >::type >::type case44; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case44 , 0 >::type >::type >::type case_label44; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 45 >::type >::type case45; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case45 , 0 >::type >::type >::type case_label45; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 46 >::type >::type case46; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case46 , 0 >::type >::type >::type case_label46; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 47 >::type >::type case47; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case47 , 0 >::type >::type >::type case_label47; typedef typename fusion::result_of::deref< typename fusion::result_of::advance_c< flat_view_begin , 48 >::type >::type case48; typedef typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< case48 , 0 >::type >::type >::type case_label48; Chris@16: switch(boost::phoenix::eval(cond, ctx)) Chris@16: { Chris@16: case case_label0::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 0>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label1::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 1>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label2::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 2>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label3::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 3>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label4::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 4>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label5::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 5>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label6::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 6>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label7::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 7>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label8::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 8>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label9::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 9>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label10::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 10>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label11::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 11>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label12::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 12>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label13::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 13>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label14::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 14>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label15::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 15>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label16::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 16>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label17::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 17>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label18::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 18>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label19::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 19>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label20::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 20>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label21::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 21>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label22::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 22>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label23::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 23>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label24::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 24>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label25::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 25>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label26::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 26>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label27::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 27>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label28::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 28>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label29::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 29>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label30::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 30>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label31::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 31>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label32::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 32>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label33::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 33>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label34::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 34>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label35::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 35>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label36::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 36>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label37::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 37>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label38::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 38>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label39::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 39>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label40::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 40>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label41::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 41>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label42::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 42>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label43::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 43>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label44::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 44>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label45::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 45>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label46::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 46>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label47::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 47>(fusion::begin(flat_view)) ) ) , ctx ); break; case case_label48::value : boost::phoenix::eval( proto::child_c<1>( fusion::deref( fusion::advance_c< 48>(fusion::begin(flat_view)) ) ) , ctx ); break; Chris@16: default: Chris@16: boost::phoenix::eval( Chris@16: proto::child_c<0>( Chris@16: fusion::deref( Chris@16: fusion::advance_c< Chris@16: 49 Chris@16: >(fusion::begin(flat_view)) Chris@16: ) Chris@16: ) Chris@16: , ctx Chris@16: ); Chris@16: } Chris@16: }