![]() |
Home | Libraries | People | FAQ | More |
boost::proto::functional::flatten — A PolymorphicFunctionObject type that returns a "flattened" view of a Proto expression tree.
// In header: <boost/proto/fusion.hpp> struct flatten : proto::callable { // member classes/structs/unions template<typename This, typename Expr> struct result<> : result< This(Expr const &) > { }; template<typename This, typename Expr> struct result<> : proto::result_of::flatten< Expr > { }; // public member functions template<typename Expr> proto::result_of::flatten< () ; template<typename Expr> proto::result_of::flatten< () ; };
A PolymorphicFunctionObject type 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)
.
The resulting view is a Fusion Forward Sequence.
flatten
public member functionstemplate<typename Expr> proto::result_of::flatten< ( expr) ;
Returns a Fusion Forward Sequence representing a flattened view of expr
.
template<typename Expr> proto::result_of::flatten< ( expr) ;
Returns a Fusion Forward Sequence representing a flattened view of expr
.