/usr/include/boost/proto/detail/preprocessed
NameSizeModeActions
and_n.hpp156630644editdlrm
args.hpp57400644editdlrm
basic_expr.hpp223530644editdlrm
class_member_traits.hpp58870644editdlrm
deduce_domain_n.hpp81920644editdlrm
deep_copy.hpp169580644editdlrm
expr.hpp1236950644editdlrm
expr_variadic.hpp590840644editdlrm
extends_funop.hpp131150644editdlrm
extends_funop_const.hpp70160644editdlrm
funop.hpp150320644editdlrm
generate_by_value.hpp192000644editdlrm
lambda_matches.hpp79410644editdlrm
make_expr.hpp120040644editdlrm
make_expr_.hpp218140644editdlrm
make_expr_funop.hpp90580644editdlrm
matches_.hpp387500644editdlrm
memfun_funop.hpp39740644editdlrm
or_n.hpp54570644editdlrm
poly_function_funop.hpp140110644editdlrm
poly_function_traits.hpp129850644editdlrm
template_arity_helper.hpp34510644editdlrm
traits.hpp521950644editdlrm
unpack_expr_.hpp452660644editdlrm
vararg_matches_impl.hpp74220644editdlrm
Edit: /usr/include/boost/proto/detail/preprocessed/traits.hpp (52195B)
/////////////////////////////////////////////////////////////////////////////// /// \file traits.hpp /// Definitions of proto::function, proto::nary_expr and proto::result_of::child_c // // Copyright 2008 Eric Niebler. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child0 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child0 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child0; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child0 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child0; } }; } template struct function < A0 , void , void , void , void , void , void , void , void , void > : proto::transform< function< A0 , void , void , void , void , void , void , void , void , void > , int > { typedef proto::expr, 1> type; typedef proto::basic_expr, 1> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef detail::if_vararg proto_child1; typedef detail::if_vararg proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , void , void , void , void , void , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , void , void , void , void , void , void , void , void , void > , int > { typedef proto::expr, 1> type; typedef proto::basic_expr, 1> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef detail::if_vararg proto_child1; typedef detail::if_vararg proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(1)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child1 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child1 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child1; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child1 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child1; } }; } template struct function < A0 , A1 , void , void , void , void , void , void , void , void > : proto::transform< function< A0 , A1 , void , void , void , void , void , void , void , void > , int > { typedef proto::expr, 2> type; typedef proto::basic_expr, 2> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef detail::if_vararg proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , void , void , void , void , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , void , void , void , void , void , void , void , void > , int > { typedef proto::expr, 2> type; typedef proto::basic_expr, 2> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef detail::if_vararg proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(2)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child2 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child2 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child2; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child2 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child2; } }; } template struct function < A0 , A1 , A2 , void , void , void , void , void , void , void > : proto::transform< function< A0 , A1 , A2 , void , void , void , void , void , void , void > , int > { typedef proto::expr, 3> type; typedef proto::basic_expr, 3> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , void , void , void , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , void , void , void , void , void , void , void > , int > { typedef proto::expr, 3> type; typedef proto::basic_expr, 3> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef detail::if_vararg proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(3)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child3 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child3 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child3; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child3 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child3; } }; } template struct function < A0 , A1 , A2 , A3 , void , void , void , void , void , void > : proto::transform< function< A0 , A1 , A2 , A3 , void , void , void , void , void , void > , int > { typedef proto::expr, 4> type; typedef proto::basic_expr, 4> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , void , void , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , void , void , void , void , void , void > , int > { typedef proto::expr, 4> type; typedef proto::basic_expr, 4> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef detail::if_vararg proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(4)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child4 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child4 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child4; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child4 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child4; } }; } template struct function < A0 , A1 , A2 , A3 , A4 , void , void , void , void , void > : proto::transform< function< A0 , A1 , A2 , A3 , A4 , void , void , void , void , void > , int > { typedef proto::expr, 5> type; typedef proto::basic_expr, 5> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , A4 , void , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , void , void , void , void , void > , int > { typedef proto::expr, 5> type; typedef proto::basic_expr, 5> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef detail::if_vararg proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(5)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child5 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child5 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child5; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child5 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child5; } }; } template struct function < A0 , A1 , A2 , A3 , A4 , A5 , void , void , void , void > : proto::transform< function< A0 , A1 , A2 , A3 , A4 , A5 , void , void , void , void > , int > { typedef proto::expr, 6> type; typedef proto::basic_expr, 6> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , A4 , A5 , void , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , A5 , void , void , void , void > , int > { typedef proto::expr, 6> type; typedef proto::basic_expr, 6> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef detail::if_vararg proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(6)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child6 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child6 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child6; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child6 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child6; } }; } template struct function < A0 , A1 , A2 , A3 , A4 , A5 , A6 , void , void , void > : proto::transform< function< A0 , A1 , A2 , A3 , A4 , A5 , A6 , void , void , void > , int > { typedef proto::expr, 7> type; typedef proto::basic_expr, 7> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , void , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , void , void , void > , int > { typedef proto::expr, 7> type; typedef proto::basic_expr, 7> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef detail::if_vararg proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(7)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child7 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child7 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child7; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child7 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child7; } }; } template struct function < A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , void , void > : proto::transform< function< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , void , void > , int > { typedef proto::expr, 8> type; typedef proto::basic_expr, 8> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , void , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , void , void > , int > { typedef proto::expr, 8> type; typedef proto::basic_expr, 8> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef detail::if_vararg proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(8)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child8 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child8 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child8; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child8 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child8; } }; } template struct function < A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , void > : proto::transform< function< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , void > , int > { typedef proto::expr, 9> type; typedef proto::basic_expr, 9> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef detail::if_vararg proto_child9; }; template struct nary_expr < Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , void > : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , void > , int > { typedef proto::expr, 9> type; typedef proto::basic_expr, 9> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef detail::if_vararg proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(9)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child9 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child9 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child9; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child9 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child9; } }; } template struct function : proto::transform< function< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > , int > { typedef proto::expr, 10> type; typedef proto::basic_expr, 10> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef proto::tag::function proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; }; template struct nary_expr : proto::transform< nary_expr< Tag , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > , int > { typedef proto::expr, 10> type; typedef proto::basic_expr, 10> proto_grammar; template struct impl : detail::pass_through_impl {}; typedef Tag proto_tag; typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; }; namespace detail { template< template class T , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct is_callable_ BOOST_PROTO_TEMPLATE_ARITY_PARAM(10)> : is_same {}; } namespace result_of { template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child10 value_type; typedef typename detail::expr_traits::value_type type; }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child10 value_type; typedef typename detail::expr_traits::reference type; BOOST_FORCEINLINE static type call(Expr &e) { return e.proto_base().child10; } }; template struct child_c { BOOST_STATIC_ASSERT(0 != Expr::proto_arity_c); typedef typename Expr::proto_child10 value_type; typedef typename detail::expr_traits::const_reference type; BOOST_FORCEINLINE static type call(Expr const &e) { return e.proto_base().child10; } }; }