X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.benjamin%2Ftem01.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.benjamin%2Ftem01.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=e464c0e2e4ba0f7c6b0e3dcc5b4946fae2f25451;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C deleted file mode 100644 index e464c0e2..00000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C +++ /dev/null @@ -1,136 +0,0 @@ -// Build don't link: -// prms-id: 13911 - -template -class ref_counter { -public: - ref_counter() : p_refcnt(new unsigned int(N)) {} - ref_counter(const ref_counter& x) : p_refcnt(x.p_refcnt) { - ++*p_refcnt; - } - ref_counter& operator=(const ref_counter& rhs) { - ++*rhs.p_refcnt; - decrement(); - p_refcnt = rhs.p_refcnt; - return *this; - } - ~ref_counter() {decrement();} - - bool unique() const {return *p_refcnt == N;} - -private: - unsigned int* p_refcnt; - void decrement() { - if (unique()) delete p_refcnt; - else --*p_refcnt; - } -}; - -template -class ref_pointer { -public: - - ref_pointer() : the_p(0) {} - ref_pointer(T* just_newed) : the_p(just_newed) {} - virtual ~ref_pointer() {if (unique()) delete the_p;} -protected: - ref_pointer(T* the_p_arg, ref_counter& ref_count_arg) - : the_p(the_p_arg), ref_count(ref_count_arg) {} - -public: - - ref_pointer& operator=(const ref_pointer&); - ref_pointer& operator=(T*); - operator const T*() const {return the_p;} - T* operator()() {return the_p;} - T* operator()() const {return the_p;} - T& operator*() const {return *the_p;} - friend bool operator==(const ref_pointer& lhs, - const ref_pointer& rhs) { - return lhs.the_p == rhs.the_p; - } - friend bool operator!=(const ref_pointer& lhs, - const ref_pointer& rhs) { - return lhs.the_p != rhs.the_p; - } - - - bool unique() const {return ref_count.unique();} - bool isNull() const {return the_p==0;} - -protected: - ref_counter& refCount() {return ref_count;} - -private: - - ref_counter ref_count; - T* the_p; -}; - -template -ref_pointer& ref_pointer::operator=(const ref_pointer& rhs) { - if (the_p != rhs.the_p) { - if (unique()) delete the_p; - the_p = rhs.the_p; - ref_count = rhs.ref_count; - } - return *this; -} - - -template -ref_pointer& ref_pointer::operator=(T* just_newed) { - if (unique()) delete the_p; - the_p = just_newed; - ref_count = ref_counter(); - return *this; -} - - - -template -class CountedObjPtr : public ref_pointer { -public: - CountedObjPtr() {} - CountedObjPtr(T* just_newed) : ref_pointer(just_newed) {} - CountedObjPtr(T* the_p_arg, ref_counter<1>& ref_count_arg) - : ref_pointer(the_p_arg, ref_count_arg) {} - CountedObjPtr& operator=(T* rhs) { - ref_pointer::operator=(rhs); - return *this; - } - CountedObjPtr& operator=(const CountedObjPtr& rhs) { - ref_pointer::operator=(rhs); - return *this; - } - T* operator->() const {return (*this)();} - -}; - - - - - -//instantiating type - -class TSObservable; - -class TSObserver { -public: - - enum TSType { NormalTS, UpYldCrvTS, DownYldCrvTS, ZeroVolTS }; - - virtual ~TSObserver() {} - - virtual void update(TSObservable* theChangedObservable) = 0; - virtual TSType key() const { return myKey; } - virtual TSType& key() { return myKey; } -protected: - TSObserver(TSType myKeyArg) : myKey(myKeyArg) {} - TSType myKey; -}; - - - -//now try to instantiate -template class CountedObjPtr;