Struct template and_
boost::proto::and_ — For matching all of a set of grammars. When used as a transform,
          proto::and_<> applies the transform associated
          with each grammar in the set and returns the result of the last.
 
Synopsis
template<typename... G> 
struct and_ :  proto::transform<and_<G...> > {
  
  typedef and_ proto_grammar;
  
  template<typename Expr, typename State, typename Data> 
  struct impl :  proto::transform_impl< Expr, State, Data > {
    
    typedef typename boost::result_of<Gn(Expr, State, Data)>::type result_type;
    
    result_type operator()(typename impl::expr_param, 
                           typename impl::state_param, 
                           typename impl::data_param) const;
  };
};
Description
<proto::and_<G0,G1,...Gn>>, если<E>соответствует всем<Gx>для<x>в<[0,n]>.
При применении<proto::and_<G0,G1,...Gn>>в качестве преобразования с выражением<e>, состоянием<s>и данными<d>он эквивалентен<(G0()(e, s, d),G1()(e, s, d),...Gn()(e, s, d))>.
Максимальное число принимаемых шаблонных аргументов<proto::and_<>>контролируется макросом<BOOST_PROTO_MAX_LOGICAL_ARITY>.