Namespaces | |
argsns_ | |
context | |
detail | |
domainns_ | |
envns_ | |
exprns_ | |
functional | |
hidden_detail_ | |
result_of | |
tagns_ | |
utility | |
Classes | |
struct | _ |
A wildcard grammar element that matches any expression, and a transform that returns the current expression unchanged. More... | |
struct | _byref |
A unary CallableTransform that wraps its argument in a boost::reference_wrapper<> . More... | |
struct | _byval |
A unary CallableTransform that strips references and boost::reference_wrapper<> from its argument. More... | |
struct | _child_c |
A PrimitiveTransform that returns N-th child of the current expression. More... | |
struct | _data |
A PrimitiveTransform that returns the current data unmodified. More... | |
struct | _deep_copy |
A PrimitiveTransform for deep-copying Proto expression trees. More... | |
struct | _default |
struct | _env |
struct | _env_var |
struct | _expr |
A PrimitiveTransform that returns the current expression unmodified. More... | |
struct | _state |
A PrimitiveTransform that returns the current state unmodified. More... | |
struct | _value |
A PrimitiveTransform that returns the value of the current terminal expression. More... | |
struct | _void |
A PrimitiveTransform that does nothing and returns void. More... | |
struct | address_of |
struct | and_ |
For matching all of a set of grammars. More... | |
struct | arity_of |
A metafunction that returns the arity of a Proto expression. More... | |
struct | arity_of< Expr & > |
struct | assign |
struct | basic_default_generator |
A simple generator that passes an expression through unchanged and specifies a preference for proto::basic_expr<> over proto::expr<> . More... | |
struct | binary_expr |
A metafunction for generating binary expression types with a specified tag type, a grammar element for matching binary expressions, and a PrimitiveTransform that dispatches to the pass_through<> transform. More... | |
struct | bitwise_and |
struct | bitwise_and_assign |
struct | bitwise_or |
struct | bitwise_or_assign |
struct | bitwise_xor |
struct | bitwise_xor_assign |
struct | by_value_generator |
A generator that replaces child nodes held by reference with ones held by value. More... | |
struct | call |
Wrap PrimitiveTransform so that when<> knows it is callable. More... | |
struct | call< detail::msvc_fun_workaround< Fun > > |
INTERNAL ONLY. More... | |
struct | call< Fun * > |
A specialization that treats function pointer Transforms as if they were function type Transforms. More... | |
struct | call< Fun(A0)> |
Either call the PolymorphicFunctionObject with 1 argument, or invoke the PrimitiveTransform with 3 arguments. More... | |
struct | call< Fun(A0, A1)> |
Either call the PolymorphicFunctionObject with 2 arguments, or invoke the PrimitiveTransform with 3 arguments. More... | |
struct | call< Fun(A0, A1, A2)> |
Call the PolymorphicFunctionObject or the PrimitiveTransform with the current expression, state and data, transformed according to A0 , A1 , and A2 , respectively. More... | |
struct | callable |
struct | char_ |
A PrimitiveTransform that returns a specified char. More... | |
struct | comma |
struct | complement |
struct | compose_generators |
A composite generator that first applies one transform to an expression and then forwards the result on to another generator for further transformation. More... | |
struct | convertible_to |
For matching terminals that are convertible to a type. More... | |
struct | default_generator |
A simple generator that passes an expression through unchanged. More... | |
struct | dereference |
struct | divides |
struct | divides_assign |
struct | domain_of |
A metafunction that returns the domain of a given type. More... | |
struct | domain_of< boost::reference_wrapper< T > const, void > |
INTERNAL ONLY. More... | |
struct | domain_of< boost::reference_wrapper< T >, void > |
INTERNAL ONLY. More... | |
struct | domain_of< T &, void > |
INTERNAL ONLY. More... | |
struct | domain_of< T, typename T::proto_is_expr_ > |
INTERNAL ONLY. More... | |
struct | equal_to |
struct | eval_fun |
INTERNAL ONLY. More... | |
struct | exact |
For forcing exact matches of terminal types. More... | |
struct | external_transforms |
For defining a map of Rule/Transform pairs for use with when<T, external_transform> to make transforms external to the grammar. More... | |
struct | fold |
A PrimitiveTransform that invokes the fusion::fold<> algorithm to accumulate. More... | |
struct | fold< _, State0, Fun > |
INTERNAL ONLY. More... | |
struct | fold_tree |
A PrimitiveTransform that recursively applies the fold<> transform to sub-trees that all share a common tag type. More... | |
struct | function |
struct | generator |
A generator that wraps expressions passed to it in the specified extension wrapper. More... | |
struct | greater |
struct | greater_equal |
struct | if_ |
Used to select one grammar or another based on the result of a compile-time Boolean. More... | |
struct | if_else_ |
A metafunction for generating ternary conditional expression types, a grammar element for matching ternary conditional expressions, and a PrimitiveTransform that dispatches to the pass_through<> transform. More... | |
struct | int_ |
A PrimitiveTransform that returns a specified int. More... | |
struct | integral_c |
A PrimitiveTransform that returns a specified integral constant. More... | |
struct | is_aggregate |
A Boolean metafunction that indicates whether a type requires aggregate initialization. More... | |
struct | is_callable |
Boolean metafunction which detects whether a type is a callable function object type or not. More... | |
struct | is_callable< _byref > |
INTERNAL ONLY. More... | |
struct | is_callable< _byval > |
INTERNAL ONLY. More... | |
struct | is_callable< _child_c< N > > |
INTERNAL ONLY. More... | |
struct | is_callable< _data > |
INTERNAL ONLY. More... | |
struct | is_callable< _default< Grammar > > |
struct | is_callable< _env_var< Key > > |
INTERNAL ONLY. More... | |
struct | is_callable< _expr > |
INTERNAL ONLY. More... | |
struct | is_callable< _state > |
INTERNAL ONLY. More... | |
struct | is_callable< _value > |
INTERNAL ONLY. More... | |
struct | is_callable< and_< BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_LOGICAL_ARITY, G) > > |
INTERNAL ONLY. More... | |
struct | is_callable< by_value_generator > |
INTERNAL ONLY. More... | |
struct | is_callable< call< Fun > > |
INTERNAL ONLY. More... | |
struct | is_callable< char_< I > > |
INTERNAL ONLY. More... | |
struct | is_callable< compose_generators< First, Second > > |
INTERNAL ONLY. More... | |
struct | is_callable< default_generator > |
INTERNAL ONLY. More... | |
struct | is_callable< eval_fun< Context > > |
INTERNAL ONLY. More... | |
struct | is_callable< fold< Sequence, State, Fun > > |
INTERNAL ONLY. More... | |
struct | is_callable< fold_tree< Sequence, State0, Fun > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::as_child< Domain > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::as_expr< Domain > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::child< N > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::child_c< N > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::env_var< Key > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::has_env_var< Key > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::make_expr< Tag, Domain > > |
INTERNAL ONLY. More... | |
struct | is_callable< functional::unpack_expr< Tag, Domain > > |
INTERNAL ONLY. More... | |
struct | is_callable< generator< Extends > > |
INTERNAL ONLY. More... | |
struct | is_callable< if_< If, Then, Else > > |
INTERNAL ONLY. More... | |
struct | is_callable< int_< I > > |
INTERNAL ONLY. More... | |
struct | is_callable< integral_c< T, I > > |
INTERNAL ONLY. More... | |
struct | is_callable< lazy< Object > > |
INTERNAL ONLY. More... | |
struct | is_callable< long_< I > > |
INTERNAL ONLY. More... | |
struct | is_callable< make< Object > > |
INTERNAL ONLY. More... | |
struct | is_callable< not_< Grammar > > |
INTERNAL ONLY. More... | |
struct | is_callable< or_< BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_LOGICAL_ARITY, G) > > |
INTERNAL ONLY. More... | |
struct | is_callable< pass_through< Grammar, Domain > > |
INTERNAL ONLY. More... | |
struct | is_callable< phoenix::call< Fun, Dummy > > |
struct | is_callable< pod_generator< Extends > > |
INTERNAL ONLY. More... | |
struct | is_callable< protect< PrimitiveTransform > > |
INTERNAL ONLY. More... | |
struct | is_callable< proto::_ > |
INTERNAL ONLY. More... | |
struct | is_callable< proto::callable > |
INTERNAL ONLY. More... | |
struct | is_callable< proto::transform< PrimitiveTransform, X > > |
INTERNAL ONLY. More... | |
struct | is_callable< reverse_fold< Sequence, State, Fun > > |
INTERNAL ONLY. More... | |
struct | is_callable< reverse_fold_tree< Sequence, State0, Fun > > |
INTERNAL ONLY. More... | |
struct | is_callable< size_t< I > > |
INTERNAL ONLY. More... | |
struct | is_callable< spirit::modify< Domain, Enable > > |
struct | is_callable< switch_< Cases, Transform > > |
INTERNAL ONLY. More... | |
struct | is_callable< vararg< Grammar > > |
INTERNAL ONLY. More... | |
struct | is_callable< when< Grammar, Transform > > |
INTERNAL ONLY. More... | |
struct | is_domain |
A metafunction that returns mpl::true_ if the type T is the type of a Proto domain; mpl::false_ otherwise. More... | |
struct | is_domain< T, typename T::proto_is_domain_ > |
INTERNAL ONLY. More... | |
struct | is_env |
struct | is_env< T &, void > |
struct | is_env< T, typename T::proto_environment_ > |
struct | is_expr |
A Boolean metafunction that indicates whether a given type T is a Proto expression type. More... | |
struct | is_expr< T &, void > |
struct | is_expr< T, typename T::proto_is_expr_ > |
A Boolean metafunction that indicates whether a given type T is a Proto expression type. More... | |
struct | is_extension |
struct | is_extension< T & > |
struct | is_sub_domain_of |
A metafunction that returns mpl::true_ if the type SubDomain is a sub-domain of SuperDomain ; mpl::false_ otherwise. More... | |
struct | is_sub_domain_of< proto::no_super_domain, SuperDomain > |
INTERNAL ONLY. More... | |
struct | is_sub_domain_of< SuperDomain, SuperDomain > |
INTERNAL ONLY. More... | |
struct | is_transform |
Boolean metafunction which detects whether a type is a PrimitiveTransform type or not. More... | |
struct | lazy |
A PrimitiveTransform that uses make<> to build a CallableTransform, and then uses call<> to apply it. More... | |
struct | lazy< detail::msvc_fun_workaround< Fun > > |
INTERNAL ONLY. More... | |
struct | less |
struct | less_equal |
struct | logical_and |
struct | logical_not |
struct | logical_or |
struct | long_ |
A PrimitiveTransform that returns a specified long. More... | |
struct | make |
A PrimitiveTransform which computes a type by evaluating any nested transforms and then constructs an object of that type. More... | |
struct | make< detail::msvc_fun_workaround< Fun > > |
INTERNAL ONLY. More... | |
struct | matches |
A Boolean metafunction that evaluates whether a given expression type matches a grammar. More... | |
struct | matches< Expr &, Grammar > |
INTERNAL ONLY. More... | |
struct | mem_ptr |
struct | member |
struct | minus |
struct | minus_assign |
struct | modulus |
struct | modulus_assign |
struct | multiplies |
struct | multiplies_assign |
struct | nary_expr |
struct | negate |
struct | noinvoke |
struct | not_ |
Inverts the set of expressions matched by a grammar. More... | |
struct | not_equal_to |
struct | nullary_expr |
A metafunction for generating nullary expression types with a specified tag type, a grammar element for matching nullary expressions, and a PrimitiveTransform that returns the current expression unchanged. More... | |
struct | or_ |
For matching one of a set of alternate grammars. More... | |
struct | otherwise |
Syntactic sugar for when<_, Fun> , for use in grammars to handle all the cases not yet handled. More... | |
struct | pass_through |
A PrimitiveTransform that transforms the child expressions of an expression node according to the corresponding children of a Grammar. More... | |
struct | plus |
struct | plus_assign |
struct | pod_generator |
A generator that wraps expressions passed to it in the specified extension wrapper and uses aggregate initialization for the wrapper. More... | |
struct | post_dec |
struct | post_inc |
struct | pre_dec |
struct | pre_inc |
struct | protect |
A PrimitiveTransform which prevents another PrimitiveTransform from being applied in an ObjectTransform . More... | |
struct | reverse_fold |
A PrimitiveTransform that is the same as the fold<> transform, except that it folds back-to-front instead of front-to-back. More... | |
struct | reverse_fold< _, State0, Fun > |
INTERNAL ONLY. More... | |
struct | reverse_fold_tree |
A PrimitiveTransform that recursively applies the reverse_fold<> transform to sub-trees that all share a common tag type. More... | |
struct | shift_left |
struct | shift_left_assign |
struct | shift_right |
struct | shift_right_assign |
struct | size_t |
A PrimitiveTransform that returns a specified std::size_t. More... | |
struct | subscript |
struct | switch_ |
For matching one of a set of alternate grammars, which are looked up based on some property of an expression. More... | |
struct | switch_< Cases > |
INTERNAL ONLY (This is merely a compile-time optimization for the common case) More... | |
struct | tag_of |
A metafunction that returns the tag type of a Proto expression. More... | |
struct | tag_of< Expr & > |
struct | terminal |
A metafunction for generating terminal expression types, a grammar element for matching terminal expressions, and a PrimitiveTransform that returns the current expression unchanged. More... | |
struct | transform |
struct | transform_impl |
struct | transform_impl< Expr &, State &, Data & > |
struct | transform_impl< Expr &, State &, Data > |
struct | transform_impl< Expr &, State, Data & > |
struct | transform_impl< Expr &, State, Data > |
struct | transform_impl< Expr, State &, Data & > |
struct | transform_impl< Expr, State &, Data > |
struct | transform_impl< Expr, State, Data & > |
struct | unary_expr |
A metafunction for generating unary expression types with a specified tag type, a grammar element for matching unary expressions, and a PrimitiveTransform that dispatches to the pass_through<> transform. More... | |
struct | unary_plus |
struct | unexpr |
Lets you inherit the interface of an expression while hiding from Proto the fact that the type is a Proto expression. More... | |
struct | use_basic_expr |
Annotate a generator to indicate that it would prefer to be passed instances of proto::basic_expr<> rather than proto::expr<> . More... | |
struct | vararg |
For matching a Grammar to a variable number of sub-expressions. More... | |
struct | wants_basic_expr |
Tests a generator to see whether it would prefer to be passed instances of proto::basic_expr<> rather than proto::expr<> . More... | |
struct | wants_basic_expr< Generator, typename Generator::proto_use_basic_expr_ > |
struct | when |
A grammar element and a PrimitiveTransform that associates a transform with the grammar. More... | |
struct | when< Grammar, external_transform > |
This specialization uses the Data parameter as a collection of transforms that can be indexed by the specified rule. More... | |
struct | when< Grammar, Fun * > |
A specialization that treats function pointer Transforms as if they were function type Transforms. More... | |
Functions | |
template<typename Expr > | |
void | display_expr (Expr const &expr, std::ostream &sout) |
Pretty-print a Proto expression tree. More... | |
template<typename Expr > | |
void | display_expr (Expr const &expr) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Grammar , typename Expr > | |
void | assert_matches (Expr const &) |
Assert at compile time that a particular expression matches the specified grammar. More... | |
template<typename Grammar , typename Expr > | |
void | assert_matches_not (Expr const &) |
Assert at compile time that a particular expression does not match the specified grammar. More... | |
template<typename Expr > | |
proto::result_of::deep_copy < Expr >::type | deep_copy (Expr const &e) |
A function for deep-copying Proto expression trees. More... | |
template<typename Expr , typename Context > | |
proto::result_of::eval< Expr, Context >::type | eval (Expr &e, Context &ctx) |
Evaluate a given Proto expression with a given context. More... | |
template<typename Expr , typename Context > | |
proto::result_of::eval< Expr, Context >::type | eval (Expr &e, Context const &ctx) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr , typename Context > | |
proto::result_of::eval< Expr const, Context >::type | eval (Expr const &e, Context &ctx) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr , typename Context > | |
proto::result_of::eval< Expr const, Context >::type | eval (Expr const &e, Context const &ctx) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr > | |
proto::detail::flat_view< Expr > const | flatten (Expr &e) |
A function that returns a "flattened" view of a Proto expression tree. More... | |
template<typename Expr > | |
proto::detail::flat_view< Expr const > const | flatten (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
literal< T & > const | lit (T &t) |
A helper function for creating a literal<> wrapper. More... | |
template<typename T > | |
literal< T const & > const | lit (T const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Tag , typename A0 > | |
BOOST_FORCEINLINE lazy_disable_if< is_domain< A0 > , result_of::make_expr< Tag, A0 const > >::type const | make_expr (A0 const &a0) |
Construct an expression of the requested tag type with a domain and with the specified arguments as children. More... | |
template<typename Tag , typename Domain , typename C0 > | |
BOOST_FORCEINLINE result_of::make_expr< Tag, Domain, C0 const >::type const | make_expr (C0 const &c0) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Tag , typename Sequence > | |
BOOST_FORCEINLINE lazy_disable_if< is_domain < Sequence > , result_of::unpack_expr< Tag, Sequence const > >::type const | unpack_expr (Sequence const &sequence) |
Construct an expression of the requested tag type with a domain and with childres from the specified Fusion Forward Sequence. More... | |
template<typename Tag , typename Domain , typename Sequence2 > | |
BOOST_FORCEINLINE result_of::unpack_expr< Tag, Domain, Sequence2 const > ::type const | unpack_expr (Sequence2 const &sequence2) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
BOOST_PP_REPEAT_FROM_TO (2, BOOST_PP_DEC(10), M0,~) struct _byref | |
template<typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_expr < T, default_domain >::type > ::type | as_expr (T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T)) |
A function that wraps non-Proto expression types in Proto terminals and leaves Proto expression types alone. More... | |
template<typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_expr < T const, default_domain > ::type >::type | as_expr (T const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Domain , typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_expr < T, Domain >::type >::type | as_expr (T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T)) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Domain , typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_expr < T const, Domain >::type > ::type | as_expr (T const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_child < T, default_domain >::type > ::type | as_child (T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T)) |
A function that wraps non-Proto expression types in Proto terminals (by reference) and returns Proto expression types by reference. More... | |
template<typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_child < T const, default_domain > ::type >::type | as_child (T const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Domain , typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_child < T, Domain >::type >::type | as_child (T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T)) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Domain , typename T > | |
BOOST_FORCEINLINE add_const < typename result_of::as_child < T const, Domain >::type > ::type | as_child (T const &t) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename N , typename Expr > | |
BOOST_FORCEINLINE result_of::child< Expr &, N > ::type | child (Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr)) |
Return the Nth child of the specified Proto expression. More... | |
template<typename N , typename Expr > | |
BOOST_FORCEINLINE result_of::child< Expr const &, N >::type | child (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr2 > | |
BOOST_FORCEINLINE detail::expr_traits< typename Expr2::proto_base_expr::proto_child0 > ::reference | child (Expr2 &expr2 BOOST_PROTO_DISABLE_IF_IS_CONST(Expr2)) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr2 > | |
BOOST_FORCEINLINE detail::expr_traits< typename Expr2::proto_base_expr::proto_child0 > ::const_reference | child (Expr2 const &expr2) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<long N, typename Expr > | |
BOOST_FORCEINLINE result_of::child_c< Expr &, N > ::type | child_c (Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr)) |
Return the Nth child of the specified Proto expression. More... | |
template<long N, typename Expr > | |
BOOST_FORCEINLINE result_of::child_c< Expr const &, N >::type | child_c (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::value< Expr & > ::type | value (Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr)) |
Return the value stored within the specified Proto terminal expression. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::value< Expr const & > ::type | value (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::left< Expr & > ::type | left (Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr)) |
Return the left child of the specified binary Proto expression. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::left< Expr const & > ::type | left (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::right< Expr & > ::type | right (Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr)) |
Return the right child of the specified binary Proto expression. More... | |
template<typename Expr > | |
BOOST_FORCEINLINE result_of::right< Expr const & > ::type | right (Expr const &e) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
proto::result_of::as_env< T & > ::type const | as_env (T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T)) |
template<typename T > | |
proto::result_of::as_env< T const & >::type const | as_env (T const &t) |
template<typename Key , typename Env > | |
proto::result_of::has_env_var < Env &, Key >::type | has_env_var (Env &e BOOST_PROTO_DISABLE_IF_IS_CONST(Env)) |
template<typename Key , typename Env > | |
proto::result_of::has_env_var < Env const &, Key >::type | has_env_var (Env const &e) |
template<typename Key , typename Env > | |
proto::result_of::env_var< Env &, Key >::type | env_var (Env &e BOOST_PROTO_DISABLE_IF_IS_CONST(Env)) |
template<typename Key , typename Env > | |
proto::result_of::env_var< Env const &, Key >::type | env_var (Env const &e) |
Variables | |
int const | N = (INT_MAX >> 10) |
typedef _child0 boost::proto::_child |
typedef _child_c<0> boost::proto::_child0 |
typedef _child_c<1> boost::proto::_child1 |
typedef functional::eval boost::proto::_eval |
typedef _child0 boost::proto::_left |
typedef _child1 boost::proto::_right |
typedef detail::ignore const boost::proto::ignore |
BOOST_FORCEINLINE add_const<typename result_of::as_child<T, default_domain>::type>::type boost::proto::as_child | ( | T &t | BOOST_PROTO_DISABLE_IF_IS_CONSTT) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T | ) |
A function that wraps non-Proto expression types in Proto terminals (by reference) and returns Proto expression types by reference.
The as_child()
function turns objects into Proto terminals if they are not Proto expression types already. Non-Proto types are held by reference. Types which are already Proto types are simply returned as-is.
This function can be called either with an explicitly specified Domain
parameter (i.e., as_child<Domain>(t)
), or without (i.e., as_child(t)
). If no domain is specified, default_domain
is assumed.
If is_expr<T>value
is true
, then the argument is returned as-is. Otherwise, as_child()
returns Domain()(terminal<T &>::type::make(t))
.
t | The object to wrap. |
References boost::flyweights::t.
BOOST_FORCEINLINE add_const<typename result_of::as_child<T const, default_domain>::type>::type boost::proto::as_child | ( | T const & | t | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE add_const<typename result_of::as_child<T, Domain>::type>::type boost::proto::as_child | ( | T &t | BOOST_PROTO_DISABLE_IF_IS_CONSTT) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::flyweights::t, and template.
BOOST_FORCEINLINE add_const<typename result_of::as_child<T const, Domain>::type>::type boost::proto::as_child | ( | T const & | t | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References template.
proto::result_of::as_env<T &>::type const boost::proto::as_env | ( | T &t | BOOST_PROTO_DISABLE_IF_IS_CONSTT | ) |
References as_env(), and boost::flyweights::t.
Referenced by boost::proto::envns_::operator,().
proto::result_of::as_env<T const &>::type const boost::proto::as_env | ( | T const & | t | ) |
References boost::flyweights::t.
Referenced by as_env().
BOOST_FORCEINLINE add_const<typename result_of::as_expr<T, default_domain>::type>::type boost::proto::as_expr | ( | T &t | BOOST_PROTO_DISABLE_IF_IS_CONSTT) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T | ) |
A function that wraps non-Proto expression types in Proto terminals and leaves Proto expression types alone.
The as_expr()
function turns objects into Proto terminals if they are not Proto expression types already. Non-Proto types are held by value, if possible. Types which are already Proto types are left alone and returned by reference.
This function can be called either with an explicitly specified Domain
parameter (i.e., as_expr<Domain>(t)
), or without (i.e., as_expr(t)
). If no domain is specified, default_domain
is assumed.
If is_expr<T>value
is true
, then the argument is returned unmodified, by reference. Otherwise, the argument is wrapped in a Proto terminal expression node according to the following rules. If T
is a function type, let A
be T &
. Otherwise, let A
be the type T
stripped of cv-qualifiers. Then, as_expr()
returns Domain()(terminal<A>::type::make(t))
.
t | The object to wrap. |
References boost::flyweights::t.
Referenced by boost::xpressive::detail::skip_directive< Skip >::operator()().
BOOST_FORCEINLINE add_const<typename result_of::as_expr<T const, default_domain>::type>::type boost::proto::as_expr | ( | T const & | t | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE add_const<typename result_of::as_expr<T, Domain>::type>::type boost::proto::as_expr | ( | T &t | BOOST_PROTO_DISABLE_IF_IS_CONSTT) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::flyweights::t, and template.
BOOST_FORCEINLINE add_const<typename result_of::as_expr<T const, Domain>::type>::type boost::proto::as_expr | ( | T const & | t | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References template.
void boost::proto::assert_matches | ( | Expr const & | ) |
Assert at compile time that a particular expression matches the specified grammar.
BOOST_MPL_ASSERT((proto::matches<Expr, Grammar>))
expr | The Proto expression to check againts Grammar |
References BOOST_MPL_ASSERT.
void boost::proto::assert_matches_not | ( | Expr const & | ) |
Assert at compile time that a particular expression does not match the specified grammar.
BOOST_MPL_ASSERT_NOT((proto::matches<Expr, Grammar>))
expr | The Proto expression to check againts Grammar |
References BOOST_MPL_ASSERT_NOT.
boost::proto::BOOST_PP_REPEAT_FROM_TO | ( | 2 | , |
BOOST_PP_DEC(10) | , | ||
M0 | , | ||
~ | |||
) |
BOOST_FORCEINLINE result_of::child<Expr &, N>::type boost::proto::child | ( | Expr &e | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr | ) |
Return the Nth child of the specified Proto expression.
Return the Nth child of the specified Proto expression. If N
is not specified, as in child(expr)
, then N
is assumed to be mpl::long_<0>
. The child is returned by reference.
expr | The Proto expression. |
is_expr<Expr>value
is true
. N
is an MPL Integral Constant. N::value < Expr::proto_arity::value
nothrow |
References boost::spirit::x3::detail::call().
Referenced by boost::boyer_myrvold_impl< Graph, VertexIndexMap, StoreOldHandlesPolicy, StoreEmbeddingPolicy >::extract_kuratowski_subgraph(), boost::heap::detail::skew_heap_node< value_type, store_parent_pointer >::is_heap(), boost::spirit::detail::make_unary< Domain, Tag, Grammar >::impl< Expr, State, Data >::operator()(), boost::relaxed_heap< vertex_descriptor, queue_compare_type, VertexIndexMap >::pop(), boost::subgraph< Graph >::subgraph(), and boost::mpi::detail::tree_reduce_impl().
BOOST_FORCEINLINE result_of::child<Expr const &, N>::type boost::proto::child | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::spirit::x3::detail::call().
BOOST_FORCEINLINE detail::expr_traits<typename Expr2::proto_base_expr::proto_child0>::reference boost::proto::child | ( | Expr2 &expr2 | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr2 | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE detail::expr_traits<typename Expr2::proto_base_expr::proto_child0>::const_reference boost::proto::child | ( | Expr2 const & | expr2 | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE result_of::child_c<Expr &, N>::type boost::proto::child_c | ( | Expr &e | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr | ) |
Return the Nth child of the specified Proto expression.
Return the Nth child of the specified Proto expression. The child is returned by reference.
expr | The Proto expression. |
nothrow |
References boost::spirit::x3::detail::call().
Referenced by BOOST_PHOENIX_DEFINE_EXPRESSION().
BOOST_FORCEINLINE result_of::child_c<Expr const &, N>::type boost::proto::child_c | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::spirit::x3::detail::call().
proto::result_of::deep_copy<Expr>::type boost::proto::deep_copy | ( | Expr const & | e | ) |
A function for deep-copying Proto expression trees.
A function for deep-copying Proto expression trees. When a tree is deep-copied, all internal nodes and most terminals held by reference are instead held by value.
Referenced by boost::spirit::qi::copy(), and boost::sub_match< BidirectionalIterator >::sub_match().
void boost::proto::display_expr | ( | Expr const & | expr, |
std::ostream & | sout | ||
) |
Pretty-print a Proto expression tree.
functional::display_expr(0, sout)(expr)
expr | The Proto expression tree to pretty-print |
sout | The ostream to which the output should be written. If not specified, defaults to std::cout . |
References display_expr().
Referenced by boost::phoenix::display_expr().
void boost::proto::display_expr | ( | Expr const & | expr | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Referenced by display_expr().
proto::result_of::env_var<Env &, Key>::type boost::proto::env_var | ( | Env &e | BOOST_PROTO_DISABLE_IF_IS_CONSTEnv | ) |
proto::result_of::env_var<Env const &, Key>::type boost::proto::env_var | ( | Env const & | e | ) |
proto::result_of::eval<Expr, Context>::type boost::proto::eval | ( | Expr & | e, |
Context & | ctx | ||
) |
Evaluate a given Proto expression with a given context.
expr | The Proto expression to evaluate |
context | The context in which the expression should be evaluated. |
typename Context::template eval<Expr>()(expr, context)
References template.
Referenced by boost::proto::context::memfun_eval< Expr, Context, is_member_function_eval< Expr, Context >::value >::operator()(), boost::proto::context::memfun_eval< Expr, Context, true >::operator()(), boost::proto::context::default_eval< Expr, Context, proto::tag::post_inc, 1 >::operator()(), boost::proto::context::default_eval< Expr, Context, proto::tag::post_dec, 1 >::operator()(), boost::proto::eval_fun< Context >::operator()(), and boost::proto::context::default_eval< Expr, Context, proto::tag::comma, 2 >::operator()().
proto::result_of::eval<Expr, Context>::type boost::proto::eval | ( | Expr & | e, |
Context const & | ctx | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References template.
proto::result_of::eval<Expr const, Context>::type boost::proto::eval | ( | Expr const & | e, |
Context & | ctx | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References template.
proto::result_of::eval<Expr const, Context>::type boost::proto::eval | ( | Expr const & | e, |
Context const & | ctx | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References template.
proto::detail::flat_view<Expr> const boost::proto::flatten | ( | Expr & | e | ) |
A function that returns a "flattened" view of a Proto expression tree.
For a tree with a top-most node tag of type T
, the elements of the flattened sequence are determined by recursing into each child node with the same tag type and returning those nodes of different type. So for instance, the Proto expression tree corresponding to the expression a | b | c
has a flattened view with elements [a, b, c], even though the tree is grouped as ((a | b) | c)
.
proto::detail::flat_view<Expr const> const boost::proto::flatten | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
proto::result_of::has_env_var<Env &, Key>::type boost::proto::has_env_var | ( | Env &e | BOOST_PROTO_DISABLE_IF_IS_CONSTEnv | ) |
proto::result_of::has_env_var<Env const &, Key>::type boost::proto::has_env_var | ( | Env const & | e | ) |
BOOST_FORCEINLINE result_of::left<Expr &>::type boost::proto::left | ( | Expr &e | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr | ) |
Return the left child of the specified binary Proto expression.
Return the left child of the specified binary Proto expression. The child is returned by reference.
expr | The Proto expression. |
nothrow |
Referenced by boost::xpressive::match_results< BidiIter >::let().
BOOST_FORCEINLINE result_of::left<Expr const &>::type boost::proto::left | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
A helper function for creating a literal<>
wrapper.
t | The object to wrap. |
nothrow |
References boost::flyweights::t.
Referenced by boost::re_detail::basic_regex_parser< charT, traits >::parse_repeat().
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::flyweights::t.
BOOST_FORCEINLINE lazy_disable_if< is_domain<A0> , result_of::make_expr< Tag , A0 const > >::type const boost::proto::make_expr | ( | A0 const & | a0 | ) |
Construct an expression of the requested tag type with a domain and with the specified arguments as children.
This function template may be invoked either with or without specifying a Domain
argument. If no domain is specified, the domain is deduced by examining in order the domains of the given arguments and taking the first that is not default_domain
, if any such domain exists, or default_domain
otherwise.
Let wrap_(x)
be defined such that:
x
is a boost::reference_wrapper<>
, wrap_(x)
is equivalent to as_child<Domain>(x.get())
. wrap_(x)
is equivalent to as_expr<Domain>(x)
.Let make_<Tag>(b0,...bN)
be defined as expr<Tag, listN<C0,...CN> >::make(c0,...cN)
where Bx
is the type of bx
.
Domain()(make_<Tag>(wrap_(a0),...wrap_(aN)))
. Referenced by boost::xpressive::after(), boost::xpressive::before(), BOOST_PHOENIX_DEFINE_EXPRESSION(), boost::xpressive::keep(), boost::phoenix::detail::catch_push_back< TryCatch, Exception, Expr, 1 >::make(), boost::phoenix::detail::catch_all_push_back< TryCatch, Expr, 1 >::make(), boost::phoenix::operator<<(), boost::phoenix::operator>>(), boost::xpressive::optional(), and boost::xpressive::repeat().
BOOST_FORCEINLINE result_of::make_expr< Tag , Domain , C0 const >::type const boost::proto::make_expr | ( | C0 const & | c0 | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE result_of::right<Expr &>::type boost::proto::right | ( | Expr &e | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr | ) |
Return the right child of the specified binary Proto expression.
Return the right child of the specified binary Proto expression. The child is returned by reference.
expr | The Proto expression. |
nothrow |
Referenced by boost::xpressive::match_results< BidiIter >::let().
BOOST_FORCEINLINE result_of::right<Expr const &>::type boost::proto::right | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
BOOST_FORCEINLINE lazy_disable_if< is_domain<Sequence> , result_of::unpack_expr<Tag, Sequence const> >::type const boost::proto::unpack_expr | ( | Sequence const & | sequence | ) |
Construct an expression of the requested tag type with a domain and with childres from the specified Fusion Forward Sequence.
This function template may be invoked either with or without specifying a Domain
argument. If no domain is specified, the domain is deduced by examining in order the domains of the elements of sequence
and taking the first that is not default_domain
, if any such domain exists, or default_domain
otherwise.
Let s
be a Fusion Random Access Sequence equivalent to sequence
. Let wrap_<N>(s)
, where s
has type S
, be defined such that:
fusion::result_of::value_at_c<S,N>::type
is a reference, wrap_<N>(s)
is equivalent to as_child<Domain>(fusion::at_c<N>(s))
. wrap_<N>(s)
is equivalent to as_expr<Domain>(fusion::at_c<N>(s))
.Let make_<Tag>(b0,...bN)
be defined as expr<Tag, listN<B0,...BN> >::make(b0,...bN)
where Bx
is the type of bx
.
sequence | a Fusion Forward Sequence. |
Domain()(make_<Tag>(wrap_<0>(s),...wrap_<N-1>(s)))
, where N is the size of Sequence
. References boost::spirit::x3::detail::call(), and boost::detail::const.
BOOST_FORCEINLINE result_of::unpack_expr<Tag, Domain, Sequence2 const>::type const boost::proto::unpack_expr | ( | Sequence2 const & | sequence2 | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References boost::spirit::x3::detail::call(), and boost::detail::const.
BOOST_FORCEINLINE result_of::value<Expr &>::type boost::proto::value | ( | Expr &e | BOOST_PROTO_DISABLE_IF_IS_CONSTExpr | ) |
Return the value stored within the specified Proto terminal expression.
Return the value stored within the specified Proto terminal expression. The value is returned by reference.
expr | The Proto terminal expression. |
N::value == 0
nothrow |
Referenced by boost::fusion::extension::deref_impl< proto::tag::proto_expr_iterator< Tag, Domain > >::apply< Iterator, 0 >::call(), boost::fusion::extension::at_impl< proto::tag::proto_expr< Tag, Domain > >::apply< Sequence, Index, 0 >::call(), boost::proto::utility::literal< T, Domain >::get(), boost::xpressive::value< T >::get(), boost::xpressive::reference< T >::get(), boost::xpressive::local< T >::get(), boost::xpressive::match_results< BidiIter >::let(), boost::xpressive::basic_regex< BidiIter >::mark_count(), boost::proto::context::default_eval< Expr, Context, tag::terminal, 0 >::operator()(), boost::spirit::detail::make_terminal_impl< Expr, State, Data, Domain >::operator()(), boost::phoenix::detail::do_assign::operator()(), boost::proto::context::callable_eval< Expr, Context, 0 >::operator()(), boost::proto::_value::impl< Expr, State, Data >::operator()(), boost::spirit::detail::make_directive< Domain, Grammar >::impl< Expr, State, Data >::operator()(), boost::spirit::detail::make_action< Domain, Grammar >::impl< Expr, State, Data >::operator()(), boost::xpressive::basic_regex< BidiIter >::operator=(), boost::xpressive::basic_regex< BidiIter >::regex_id(), and boost::xpressive::basic_regex< BidiIter >::swap().
BOOST_FORCEINLINE result_of::value<Expr const &>::type boost::proto::value | ( | Expr const & | e | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
int const boost::proto::N = (INT_MAX >> 10) |
Referenced by boost::proto::detail::make_terminal().