boost::proto::deep_copy — A function for deep-copying Proto expression trees.
template<typename Expr> typename proto::result_of::deep_copy<Expr>::type deep_copy(Expr const & expr);
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.