00001 #ifndef EXPRBASEPTR_H 00002 #define EXPRBASEPTR_H 00003 00004 #include "SundanceDefs.h" 00005 00006 00007 namespace Sundance 00008 { 00009 00010 using namespace TSF; 00011 using std::string; 00012 00013 using std::ostream; 00014 00015 class ExprBase; 00016 00017 class ExprBasePtr 00018 { 00019 public: 00020 ExprBasePtr(ExprBase* ptr); 00021 ~ExprBasePtr(); 00022 00023 void linkTo(const ExprBasePtr* other); 00024 ExprBase* ptr_; 00025 int* refCount_; 00026 private: 00027 ExprBasePtr(const ExprBasePtr& other); 00028 const ExprBasePtr& operator=(const ExprBasePtr& other); 00029 00030 }; 00031 00032 00033 00034 } 00035 #endif