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