📄 closure.hpp
字号:
typedef typename phoenix::as_actor<I>::type i_t; typedef typename phoenix::as_actor<J>::type j_t; typedef typename phoenix::as_actor<K>::type k_t; typedef typename phoenix::as_actor<L>::type l_t; typedef typename phoenix::as_actor<M>::type m_t; typedef phoenix::tuple< a_t, b_t, c_t, d_t, e_t, f_t, g_t, h_t, i_t, j_t, k_t, l_t, m_t > actor_tuple_t; return init_closure_parser<DerivedT2, actor_tuple_t>( aux_derived(), actor_tuple_t( phoenix::as_actor<A>::convert(a), phoenix::as_actor<B>::convert(b), phoenix::as_actor<C>::convert(c), phoenix::as_actor<D>::convert(d), phoenix::as_actor<E>::convert(e), phoenix::as_actor<F>::convert(f), phoenix::as_actor<G>::convert(g), phoenix::as_actor<H>::convert(h), phoenix::as_actor<I>::convert(i), phoenix::as_actor<J>::convert(j), phoenix::as_actor<K>::convert(k), phoenix::as_actor<L>::convert(l), phoenix::as_actor<M>::convert(m) ) ); } template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L, typename M, typename N > init_closure_parser< DerivedT2, phoenix::tuple< typename phoenix::as_actor<A>::type, typename phoenix::as_actor<B>::type, typename phoenix::as_actor<C>::type, typename phoenix::as_actor<D>::type, typename phoenix::as_actor<E>::type, typename phoenix::as_actor<F>::type, typename phoenix::as_actor<G>::type, typename phoenix::as_actor<H>::type, typename phoenix::as_actor<I>::type, typename phoenix::as_actor<J>::type, typename phoenix::as_actor<K>::type, typename phoenix::as_actor<L>::type, typename phoenix::as_actor<M>::type, typename phoenix::as_actor<N>::type > > operator()( A const &a, B const &b, C const &c, D const &d, E const &e, F const &f, G const &g, H const &h, I const &i, J const &j, K const &k, L const &l, M const &m, N const &n ) const { typedef typename phoenix::as_actor<A>::type a_t; typedef typename phoenix::as_actor<B>::type b_t; typedef typename phoenix::as_actor<C>::type c_t; typedef typename phoenix::as_actor<D>::type d_t; typedef typename phoenix::as_actor<E>::type e_t; typedef typename phoenix::as_actor<F>::type f_t; typedef typename phoenix::as_actor<G>::type g_t; typedef typename phoenix::as_actor<H>::type h_t; typedef typename phoenix::as_actor<I>::type i_t; typedef typename phoenix::as_actor<J>::type j_t; typedef typename phoenix::as_actor<K>::type k_t; typedef typename phoenix::as_actor<L>::type l_t; typedef typename phoenix::as_actor<M>::type m_t; typedef typename phoenix::as_actor<N>::type n_t; typedef phoenix::tuple< a_t, b_t, c_t, d_t, e_t, f_t, g_t, h_t, i_t, j_t, k_t, l_t, m_t, n_t > actor_tuple_t; return init_closure_parser<DerivedT2, actor_tuple_t>( aux_derived(), actor_tuple_t( phoenix::as_actor<A>::convert(a), phoenix::as_actor<B>::convert(b), phoenix::as_actor<C>::convert(c), phoenix::as_actor<D>::convert(d), phoenix::as_actor<E>::convert(e), phoenix::as_actor<F>::convert(f), phoenix::as_actor<G>::convert(g), phoenix::as_actor<H>::convert(h), phoenix::as_actor<I>::convert(i), phoenix::as_actor<J>::convert(j), phoenix::as_actor<K>::convert(k), phoenix::as_actor<L>::convert(l), phoenix::as_actor<M>::convert(m), phoenix::as_actor<N>::convert(n) ) ); } template < typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L, typename M, typename N, typename O > init_closure_parser< DerivedT2, phoenix::tuple< typename phoenix::as_actor<A>::type, typename phoenix::as_actor<B>::type, typename phoenix::as_actor<C>::type, typename phoenix::as_actor<D>::type, typename phoenix::as_actor<E>::type, typename phoenix::as_actor<F>::type, typename phoenix::as_actor<G>::type, typename phoenix::as_actor<H>::type, typename phoenix::as_actor<I>::type, typename phoenix::as_actor<J>::type, typename phoenix::as_actor<K>::type, typename phoenix::as_actor<L>::type, typename phoenix::as_actor<M>::type, typename phoenix::as_actor<N>::type, typename phoenix::as_actor<O>::type > > operator()( A const &a, B const &b, C const &c, D const &d, E const &e, F const &f, G const &g, H const &h, I const &i, J const &j, K const &k, L const &l, M const &m, N const &n, O const &o ) const { typedef typename phoenix::as_actor<A>::type a_t; typedef typename phoenix::as_actor<B>::type b_t; typedef typename phoenix::as_actor<C>::type c_t; typedef typename phoenix::as_actor<D>::type d_t; typedef typename phoenix::as_actor<E>::type e_t; typedef typename phoenix::as_actor<F>::type f_t; typedef typename phoenix::as_actor<G>::type g_t; typedef typename phoenix::as_actor<H>::type h_t; typedef typename phoenix::as_actor<I>::type i_t; typedef typename phoenix::as_actor<J>::type j_t; typedef typename phoenix::as_actor<K>::type k_t; typedef typename phoenix::as_actor<L>::type l_t; typedef typename phoenix::as_actor<M>::type m_t; typedef typename phoenix::as_actor<N>::type n_t; typedef typename phoenix::as_actor<O>::type o_t; typedef phoenix::tuple< a_t, b_t, c_t, d_t, e_t, f_t, g_t, h_t, i_t, j_t, k_t, l_t, m_t, n_t, o_t > actor_tuple_t; return init_closure_parser<DerivedT2, actor_tuple_t>( aux_derived(), actor_tuple_t( phoenix::as_actor<A>::convert(a), phoenix::as_actor<B>::convert(b), phoenix::as_actor<C>::convert(c), phoenix::as_actor<D>::convert(d), phoenix::as_actor<E>::convert(e), phoenix::as_actor<F>::convert(f), phoenix::as_actor<G>::convert(g), phoenix::as_actor<H>::convert(h), phoenix::as_actor<I>::convert(i), phoenix::as_actor<J>::convert(j), phoenix::as_actor<K>::convert(k), phoenix::as_actor<L>::convert(l), phoenix::as_actor<M>::convert(m), phoenix::as_actor<N>::convert(n), phoenix::as_actor<O>::convert(o) ) ); } #endif #endif #endif #endif }; ~closure() {} }; /////////////////////////////////////////////////////////////////////////// // // overloads for chseq_p and str_p taking in phoenix actors // /////////////////////////////////////////////////////////////////////////// template <typename ActorT> struct container_begin { typedef container_begin<ActorT> self_t; template <typename TupleT> struct result { typedef typename phoenix::actor_result<ActorT, TupleT> ::plain_type::iterator type; }; container_begin(ActorT actor_) : actor(actor_) {} template <typename TupleT> typename phoenix::actor_result<self_t, TupleT>::type eval(TupleT const& /*args*/) const { return actor().begin(); } ActorT actor; }; template <typename ActorT> struct container_end { typedef container_begin<ActorT> self_t; template <typename TupleT> struct result { typedef typename phoenix::actor_result<ActorT, TupleT> ::plain_type::iterator type; }; container_end(ActorT actor_) : actor(actor_) {} template <typename TupleT> typename phoenix::actor_result<self_t, TupleT>::type eval(TupleT const& /*args*/) const { return actor().end(); } ActorT actor; }; template <typename BaseT> inline f_chseq< phoenix::actor<container_begin<phoenix::actor<BaseT> > >, phoenix::actor<container_end<phoenix::actor<BaseT> > > > f_chseq_p(phoenix::actor<BaseT> const& a) { typedef phoenix::actor<container_begin<phoenix::actor<BaseT> > > container_begin_t; typedef phoenix::actor<container_end<phoenix::actor<BaseT> > > container_end_t; typedef f_chseq<container_begin_t, container_end_t> result_t; return result_t(container_begin_t(a), container_end_t(a)); } template <typename BaseT> inline f_strlit< phoenix::actor<container_begin<phoenix::actor<BaseT> > >, phoenix::actor<container_end<phoenix::actor<BaseT> > > > f_str_p(phoenix::actor<BaseT> const& a) { typedef phoenix::actor<container_begin<phoenix::actor<BaseT> > > container_begin_t; typedef phoenix::actor<container_end<phoenix::actor<BaseT> > > container_end_t; typedef f_strlit<container_begin_t, container_end_t> result_t; return result_t(container_begin_t(a), container_end_t(a)); }BOOST_SPIRIT_CLASSIC_NAMESPACE_END}} // namespace BOOST_SPIRIT_CLASSIC_NS#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -