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>.