From 3a4235b9897b75a188753419a29f0616c1686249 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 3 Aug 2009 15:20:19 -0700 Subject: Strengthen the template types in update_visitor * staptree.h (update_visitor::require, provide): Make the parameters and return values a T*, to make it explicit that we want pointer types. --- staptree.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'staptree.h') diff --git a/staptree.h b/staptree.h index 146d0e34..bc479559 100644 --- a/staptree.h +++ b/staptree.h @@ -855,21 +855,21 @@ struct throwing_visitor: public visitor struct update_visitor: public visitor { - template T require (T src, bool clearok=false) + template T* require (T* src, bool clearok=false) { - T dst = NULL; + T* dst = NULL; if (src != NULL) { src->visit(this); assert(!targets.empty()); - dst = static_cast(targets.top()); + dst = static_cast(targets.top()); targets.pop(); assert(clearok || dst); } return dst; } - template void provide (T src) + template void provide (T* src) { targets.push(static_cast(src)); } @@ -915,7 +915,7 @@ private: }; template <> indexable* -update_visitor::require (indexable* src, bool clearok); +update_visitor::require (indexable* src, bool clearok); // A visitor which performs a deep copy of the root node it's applied // to. NB: It does not copy any of the variable or function @@ -925,7 +925,7 @@ update_visitor::require (indexable* src, bool clearok); struct deep_copy_visitor: public update_visitor { - template static T deep_copy (T e) + template static T* deep_copy (T* e) { deep_copy_visitor v; return v.require (e); -- cgit