annotate DEPENDENCIES/generic/include/boost/phoenix/statement/detail/preprocessed/switch_10.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 /*==============================================================================
Chris@16 2 Copyright (c) 2005-2010 Joel de Guzman
Chris@16 3 Copyright (c) 2010 Thomas Heller
Chris@16 4
Chris@16 5 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7 ==============================================================================*/
Chris@16 8
Chris@16 9
Chris@16 10
Chris@16 11
Chris@16 12
Chris@16 13
Chris@16 14
Chris@16 15 template <typename Context, typename Cond, typename Cases>
Chris@16 16 result_type
Chris@16 17 evaluate(
Chris@16 18 Context const & ctx
Chris@16 19 , Cond const & cond
Chris@16 20 , Cases const & cases
Chris@16 21 , mpl::int_<2>
Chris@16 22 , mpl::false_
Chris@16 23 ) const
Chris@16 24 {
Chris@16 25 typedef
Chris@16 26 typename proto::result_of::flatten<Cases const&>::type
Chris@16 27 flat_view_type;
Chris@16 28 typedef
Chris@16 29 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 30 flat_view_begin;
Chris@16 31 flat_view_type flat_view(proto::flatten(cases));
Chris@16 32 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 33 switch(boost::phoenix::eval(cond, ctx))
Chris@16 34 {
Chris@16 35 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 36 }
Chris@16 37 }
Chris@16 38 template <typename Context, typename Cond, typename Cases>
Chris@16 39 result_type
Chris@16 40 evaluate(
Chris@16 41 Context const & ctx
Chris@16 42 , Cond const & cond
Chris@16 43 , Cases const & cases
Chris@16 44 , mpl::int_<2>
Chris@16 45 , mpl::true_
Chris@16 46 ) const
Chris@16 47 {
Chris@16 48 typedef
Chris@16 49 typename proto::result_of::flatten<Cases const&>::type
Chris@16 50 flat_view_type;
Chris@16 51 typedef
Chris@16 52 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 53 flat_view_begin;
Chris@16 54 flat_view_type flat_view(proto::flatten(cases));
Chris@16 55 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 56 switch(boost::phoenix::eval(cond, ctx))
Chris@16 57 {
Chris@16 58 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 59 default:
Chris@16 60 boost::phoenix::eval(
Chris@16 61 proto::child_c<0>(
Chris@16 62 fusion::deref(
Chris@16 63 fusion::advance_c<
Chris@16 64 1
Chris@16 65 >(fusion::begin(flat_view))
Chris@16 66 )
Chris@16 67 )
Chris@16 68 , ctx
Chris@16 69 );
Chris@16 70 }
Chris@16 71 }
Chris@16 72
Chris@16 73
Chris@16 74
Chris@16 75
Chris@16 76
Chris@16 77
Chris@16 78
Chris@16 79 template <typename Context, typename Cond, typename Cases>
Chris@16 80 result_type
Chris@16 81 evaluate(
Chris@16 82 Context const & ctx
Chris@16 83 , Cond const & cond
Chris@16 84 , Cases const & cases
Chris@16 85 , mpl::int_<3>
Chris@16 86 , mpl::false_
Chris@16 87 ) const
Chris@16 88 {
Chris@16 89 typedef
Chris@16 90 typename proto::result_of::flatten<Cases const&>::type
Chris@16 91 flat_view_type;
Chris@16 92 typedef
Chris@16 93 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 94 flat_view_begin;
Chris@16 95 flat_view_type flat_view(proto::flatten(cases));
Chris@16 96 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 97 switch(boost::phoenix::eval(cond, ctx))
Chris@16 98 {
Chris@16 99 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 100 }
Chris@16 101 }
Chris@16 102 template <typename Context, typename Cond, typename Cases>
Chris@16 103 result_type
Chris@16 104 evaluate(
Chris@16 105 Context const & ctx
Chris@16 106 , Cond const & cond
Chris@16 107 , Cases const & cases
Chris@16 108 , mpl::int_<3>
Chris@16 109 , mpl::true_
Chris@16 110 ) const
Chris@16 111 {
Chris@16 112 typedef
Chris@16 113 typename proto::result_of::flatten<Cases const&>::type
Chris@16 114 flat_view_type;
Chris@16 115 typedef
Chris@16 116 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 117 flat_view_begin;
Chris@16 118 flat_view_type flat_view(proto::flatten(cases));
Chris@16 119 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 120 switch(boost::phoenix::eval(cond, ctx))
Chris@16 121 {
Chris@16 122 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 123 default:
Chris@16 124 boost::phoenix::eval(
Chris@16 125 proto::child_c<0>(
Chris@16 126 fusion::deref(
Chris@16 127 fusion::advance_c<
Chris@16 128 2
Chris@16 129 >(fusion::begin(flat_view))
Chris@16 130 )
Chris@16 131 )
Chris@16 132 , ctx
Chris@16 133 );
Chris@16 134 }
Chris@16 135 }
Chris@16 136
Chris@16 137
Chris@16 138
Chris@16 139
Chris@16 140
Chris@16 141
Chris@16 142
Chris@16 143 template <typename Context, typename Cond, typename Cases>
Chris@16 144 result_type
Chris@16 145 evaluate(
Chris@16 146 Context const & ctx
Chris@16 147 , Cond const & cond
Chris@16 148 , Cases const & cases
Chris@16 149 , mpl::int_<4>
Chris@16 150 , mpl::false_
Chris@16 151 ) const
Chris@16 152 {
Chris@16 153 typedef
Chris@16 154 typename proto::result_of::flatten<Cases const&>::type
Chris@16 155 flat_view_type;
Chris@16 156 typedef
Chris@16 157 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 158 flat_view_begin;
Chris@16 159 flat_view_type flat_view(proto::flatten(cases));
Chris@16 160 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 161 switch(boost::phoenix::eval(cond, ctx))
Chris@16 162 {
Chris@16 163 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 164 }
Chris@16 165 }
Chris@16 166 template <typename Context, typename Cond, typename Cases>
Chris@16 167 result_type
Chris@16 168 evaluate(
Chris@16 169 Context const & ctx
Chris@16 170 , Cond const & cond
Chris@16 171 , Cases const & cases
Chris@16 172 , mpl::int_<4>
Chris@16 173 , mpl::true_
Chris@16 174 ) const
Chris@16 175 {
Chris@16 176 typedef
Chris@16 177 typename proto::result_of::flatten<Cases const&>::type
Chris@16 178 flat_view_type;
Chris@16 179 typedef
Chris@16 180 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 181 flat_view_begin;
Chris@16 182 flat_view_type flat_view(proto::flatten(cases));
Chris@16 183 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 184 switch(boost::phoenix::eval(cond, ctx))
Chris@16 185 {
Chris@16 186 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 187 default:
Chris@16 188 boost::phoenix::eval(
Chris@16 189 proto::child_c<0>(
Chris@16 190 fusion::deref(
Chris@16 191 fusion::advance_c<
Chris@16 192 3
Chris@16 193 >(fusion::begin(flat_view))
Chris@16 194 )
Chris@16 195 )
Chris@16 196 , ctx
Chris@16 197 );
Chris@16 198 }
Chris@16 199 }
Chris@16 200
Chris@16 201
Chris@16 202
Chris@16 203
Chris@16 204
Chris@16 205
Chris@16 206
Chris@16 207 template <typename Context, typename Cond, typename Cases>
Chris@16 208 result_type
Chris@16 209 evaluate(
Chris@16 210 Context const & ctx
Chris@16 211 , Cond const & cond
Chris@16 212 , Cases const & cases
Chris@16 213 , mpl::int_<5>
Chris@16 214 , mpl::false_
Chris@16 215 ) const
Chris@16 216 {
Chris@16 217 typedef
Chris@16 218 typename proto::result_of::flatten<Cases const&>::type
Chris@16 219 flat_view_type;
Chris@16 220 typedef
Chris@16 221 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 222 flat_view_begin;
Chris@16 223 flat_view_type flat_view(proto::flatten(cases));
Chris@16 224 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 225 switch(boost::phoenix::eval(cond, ctx))
Chris@16 226 {
Chris@16 227 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 228 }
Chris@16 229 }
Chris@16 230 template <typename Context, typename Cond, typename Cases>
Chris@16 231 result_type
Chris@16 232 evaluate(
Chris@16 233 Context const & ctx
Chris@16 234 , Cond const & cond
Chris@16 235 , Cases const & cases
Chris@16 236 , mpl::int_<5>
Chris@16 237 , mpl::true_
Chris@16 238 ) const
Chris@16 239 {
Chris@16 240 typedef
Chris@16 241 typename proto::result_of::flatten<Cases const&>::type
Chris@16 242 flat_view_type;
Chris@16 243 typedef
Chris@16 244 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 245 flat_view_begin;
Chris@16 246 flat_view_type flat_view(proto::flatten(cases));
Chris@16 247 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 248 switch(boost::phoenix::eval(cond, ctx))
Chris@16 249 {
Chris@16 250 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 251 default:
Chris@16 252 boost::phoenix::eval(
Chris@16 253 proto::child_c<0>(
Chris@16 254 fusion::deref(
Chris@16 255 fusion::advance_c<
Chris@16 256 4
Chris@16 257 >(fusion::begin(flat_view))
Chris@16 258 )
Chris@16 259 )
Chris@16 260 , ctx
Chris@16 261 );
Chris@16 262 }
Chris@16 263 }
Chris@16 264
Chris@16 265
Chris@16 266
Chris@16 267
Chris@16 268
Chris@16 269
Chris@16 270
Chris@16 271 template <typename Context, typename Cond, typename Cases>
Chris@16 272 result_type
Chris@16 273 evaluate(
Chris@16 274 Context const & ctx
Chris@16 275 , Cond const & cond
Chris@16 276 , Cases const & cases
Chris@16 277 , mpl::int_<6>
Chris@16 278 , mpl::false_
Chris@16 279 ) const
Chris@16 280 {
Chris@16 281 typedef
Chris@16 282 typename proto::result_of::flatten<Cases const&>::type
Chris@16 283 flat_view_type;
Chris@16 284 typedef
Chris@16 285 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 286 flat_view_begin;
Chris@16 287 flat_view_type flat_view(proto::flatten(cases));
Chris@16 288 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 289 switch(boost::phoenix::eval(cond, ctx))
Chris@16 290 {
Chris@16 291 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 292 }
Chris@16 293 }
Chris@16 294 template <typename Context, typename Cond, typename Cases>
Chris@16 295 result_type
Chris@16 296 evaluate(
Chris@16 297 Context const & ctx
Chris@16 298 , Cond const & cond
Chris@16 299 , Cases const & cases
Chris@16 300 , mpl::int_<6>
Chris@16 301 , mpl::true_
Chris@16 302 ) const
Chris@16 303 {
Chris@16 304 typedef
Chris@16 305 typename proto::result_of::flatten<Cases const&>::type
Chris@16 306 flat_view_type;
Chris@16 307 typedef
Chris@16 308 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 309 flat_view_begin;
Chris@16 310 flat_view_type flat_view(proto::flatten(cases));
Chris@16 311 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 312 switch(boost::phoenix::eval(cond, ctx))
Chris@16 313 {
Chris@16 314 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 315 default:
Chris@16 316 boost::phoenix::eval(
Chris@16 317 proto::child_c<0>(
Chris@16 318 fusion::deref(
Chris@16 319 fusion::advance_c<
Chris@16 320 5
Chris@16 321 >(fusion::begin(flat_view))
Chris@16 322 )
Chris@16 323 )
Chris@16 324 , ctx
Chris@16 325 );
Chris@16 326 }
Chris@16 327 }
Chris@16 328
Chris@16 329
Chris@16 330
Chris@16 331
Chris@16 332
Chris@16 333
Chris@16 334
Chris@16 335 template <typename Context, typename Cond, typename Cases>
Chris@16 336 result_type
Chris@16 337 evaluate(
Chris@16 338 Context const & ctx
Chris@16 339 , Cond const & cond
Chris@16 340 , Cases const & cases
Chris@16 341 , mpl::int_<7>
Chris@16 342 , mpl::false_
Chris@16 343 ) const
Chris@16 344 {
Chris@16 345 typedef
Chris@16 346 typename proto::result_of::flatten<Cases const&>::type
Chris@16 347 flat_view_type;
Chris@16 348 typedef
Chris@16 349 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 350 flat_view_begin;
Chris@16 351 flat_view_type flat_view(proto::flatten(cases));
Chris@16 352 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 353 switch(boost::phoenix::eval(cond, ctx))
Chris@16 354 {
Chris@16 355 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 356 }
Chris@16 357 }
Chris@16 358 template <typename Context, typename Cond, typename Cases>
Chris@16 359 result_type
Chris@16 360 evaluate(
Chris@16 361 Context const & ctx
Chris@16 362 , Cond const & cond
Chris@16 363 , Cases const & cases
Chris@16 364 , mpl::int_<7>
Chris@16 365 , mpl::true_
Chris@16 366 ) const
Chris@16 367 {
Chris@16 368 typedef
Chris@16 369 typename proto::result_of::flatten<Cases const&>::type
Chris@16 370 flat_view_type;
Chris@16 371 typedef
Chris@16 372 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 373 flat_view_begin;
Chris@16 374 flat_view_type flat_view(proto::flatten(cases));
Chris@16 375 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 376 switch(boost::phoenix::eval(cond, ctx))
Chris@16 377 {
Chris@16 378 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 379 default:
Chris@16 380 boost::phoenix::eval(
Chris@16 381 proto::child_c<0>(
Chris@16 382 fusion::deref(
Chris@16 383 fusion::advance_c<
Chris@16 384 6
Chris@16 385 >(fusion::begin(flat_view))
Chris@16 386 )
Chris@16 387 )
Chris@16 388 , ctx
Chris@16 389 );
Chris@16 390 }
Chris@16 391 }
Chris@16 392
Chris@16 393
Chris@16 394
Chris@16 395
Chris@16 396
Chris@16 397
Chris@16 398
Chris@16 399 template <typename Context, typename Cond, typename Cases>
Chris@16 400 result_type
Chris@16 401 evaluate(
Chris@16 402 Context const & ctx
Chris@16 403 , Cond const & cond
Chris@16 404 , Cases const & cases
Chris@16 405 , mpl::int_<8>
Chris@16 406 , mpl::false_
Chris@16 407 ) const
Chris@16 408 {
Chris@16 409 typedef
Chris@16 410 typename proto::result_of::flatten<Cases const&>::type
Chris@16 411 flat_view_type;
Chris@16 412 typedef
Chris@16 413 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 414 flat_view_begin;
Chris@16 415 flat_view_type flat_view(proto::flatten(cases));
Chris@16 416 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 417 switch(boost::phoenix::eval(cond, ctx))
Chris@16 418 {
Chris@16 419 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 420 }
Chris@16 421 }
Chris@16 422 template <typename Context, typename Cond, typename Cases>
Chris@16 423 result_type
Chris@16 424 evaluate(
Chris@16 425 Context const & ctx
Chris@16 426 , Cond const & cond
Chris@16 427 , Cases const & cases
Chris@16 428 , mpl::int_<8>
Chris@16 429 , mpl::true_
Chris@16 430 ) const
Chris@16 431 {
Chris@16 432 typedef
Chris@16 433 typename proto::result_of::flatten<Cases const&>::type
Chris@16 434 flat_view_type;
Chris@16 435 typedef
Chris@16 436 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 437 flat_view_begin;
Chris@16 438 flat_view_type flat_view(proto::flatten(cases));
Chris@16 439 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 440 switch(boost::phoenix::eval(cond, ctx))
Chris@16 441 {
Chris@16 442 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 443 default:
Chris@16 444 boost::phoenix::eval(
Chris@16 445 proto::child_c<0>(
Chris@16 446 fusion::deref(
Chris@16 447 fusion::advance_c<
Chris@16 448 7
Chris@16 449 >(fusion::begin(flat_view))
Chris@16 450 )
Chris@16 451 )
Chris@16 452 , ctx
Chris@16 453 );
Chris@16 454 }
Chris@16 455 }
Chris@16 456
Chris@16 457
Chris@16 458
Chris@16 459
Chris@16 460
Chris@16 461
Chris@16 462
Chris@16 463 template <typename Context, typename Cond, typename Cases>
Chris@16 464 result_type
Chris@16 465 evaluate(
Chris@16 466 Context const & ctx
Chris@16 467 , Cond const & cond
Chris@16 468 , Cases const & cases
Chris@16 469 , mpl::int_<9>
Chris@16 470 , mpl::false_
Chris@16 471 ) const
Chris@16 472 {
Chris@16 473 typedef
Chris@16 474 typename proto::result_of::flatten<Cases const&>::type
Chris@16 475 flat_view_type;
Chris@16 476 typedef
Chris@16 477 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 478 flat_view_begin;
Chris@16 479 flat_view_type flat_view(proto::flatten(cases));
Chris@16 480 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 481 switch(boost::phoenix::eval(cond, ctx))
Chris@16 482 {
Chris@16 483 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 484 }
Chris@16 485 }
Chris@16 486 template <typename Context, typename Cond, typename Cases>
Chris@16 487 result_type
Chris@16 488 evaluate(
Chris@16 489 Context const & ctx
Chris@16 490 , Cond const & cond
Chris@16 491 , Cases const & cases
Chris@16 492 , mpl::int_<9>
Chris@16 493 , mpl::true_
Chris@16 494 ) const
Chris@16 495 {
Chris@16 496 typedef
Chris@16 497 typename proto::result_of::flatten<Cases const&>::type
Chris@16 498 flat_view_type;
Chris@16 499 typedef
Chris@16 500 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 501 flat_view_begin;
Chris@16 502 flat_view_type flat_view(proto::flatten(cases));
Chris@16 503 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 504 switch(boost::phoenix::eval(cond, ctx))
Chris@16 505 {
Chris@16 506 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 507 default:
Chris@16 508 boost::phoenix::eval(
Chris@16 509 proto::child_c<0>(
Chris@16 510 fusion::deref(
Chris@16 511 fusion::advance_c<
Chris@16 512 8
Chris@16 513 >(fusion::begin(flat_view))
Chris@16 514 )
Chris@16 515 )
Chris@16 516 , ctx
Chris@16 517 );
Chris@16 518 }
Chris@16 519 }
Chris@16 520
Chris@16 521
Chris@16 522
Chris@16 523
Chris@16 524
Chris@16 525
Chris@16 526
Chris@16 527 template <typename Context, typename Cond, typename Cases>
Chris@16 528 result_type
Chris@16 529 evaluate(
Chris@16 530 Context const & ctx
Chris@16 531 , Cond const & cond
Chris@16 532 , Cases const & cases
Chris@16 533 , mpl::int_<10>
Chris@16 534 , mpl::false_
Chris@16 535 ) const
Chris@16 536 {
Chris@16 537 typedef
Chris@16 538 typename proto::result_of::flatten<Cases const&>::type
Chris@16 539 flat_view_type;
Chris@16 540 typedef
Chris@16 541 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 542 flat_view_begin;
Chris@16 543 flat_view_type flat_view(proto::flatten(cases));
Chris@16 544 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 545 switch(boost::phoenix::eval(cond, ctx))
Chris@16 546 {
Chris@16 547 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 548 }
Chris@16 549 }
Chris@16 550 template <typename Context, typename Cond, typename Cases>
Chris@16 551 result_type
Chris@16 552 evaluate(
Chris@16 553 Context const & ctx
Chris@16 554 , Cond const & cond
Chris@16 555 , Cases const & cases
Chris@16 556 , mpl::int_<10>
Chris@16 557 , mpl::true_
Chris@16 558 ) const
Chris@16 559 {
Chris@16 560 typedef
Chris@16 561 typename proto::result_of::flatten<Cases const&>::type
Chris@16 562 flat_view_type;
Chris@16 563 typedef
Chris@16 564 typename fusion::result_of::begin<flat_view_type>::type
Chris@16 565 flat_view_begin;
Chris@16 566 flat_view_type flat_view(proto::flatten(cases));
Chris@16 567 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 568 switch(boost::phoenix::eval(cond, ctx))
Chris@16 569 {
Chris@16 570 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 571 default:
Chris@16 572 boost::phoenix::eval(
Chris@16 573 proto::child_c<0>(
Chris@16 574 fusion::deref(
Chris@16 575 fusion::advance_c<
Chris@16 576 9
Chris@16 577 >(fusion::begin(flat_view))
Chris@16 578 )
Chris@16 579 )
Chris@16 580 , ctx
Chris@16 581 );
Chris@16 582 }
Chris@16 583 }