Replace all nodes stored by reference by nodes stored by value.
A metafunction for calculating the return type of
proto::deep_copy().
A metafunction for calculating the return type of
proto::deep_copy(). The type
parameter Expr should be the type of a Proto expression tree.
It should not be a reference type, nor should it be cv-qualified.
unspecified
proto::callable
A PolymorphicFunctionObject type for deep-copying Proto
expression trees.
A PolymorphicFunctionObject type for deep-copying Proto expression trees.
When a tree is deep-copied, all internal nodes and terminals held by reference are instead held by value.
The only exception is function references, which continue to be held by reference.
This(Expr)
result_of::deep_copy<Expr>
result_of::deep_copy<Expr>::type
Expr const &
Deep-copies a Proto expression tree, turning all nodes and terminals held by
reference into ones held by value.
typename proto::result_of::deep_copy<Expr>::type
Expr const &
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 terminals held by reference are instead held by value.
Terminals of reference-to-function type are left unchanged.
Equivalent to proto::functional::deep_copy()(expr)
.