X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/faust-0.9.47mr3/compiler/headers/smartpointer.hh diff --git a/interpretor/faust-0.9.47mr3/compiler/headers/smartpointer.hh b/interpretor/faust-0.9.47mr3/compiler/headers/smartpointer.hh deleted file mode 100644 index 825bd9a..0000000 --- a/interpretor/faust-0.9.47mr3/compiler/headers/smartpointer.hh +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST compiler - Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - ************************************************************************ - ************************************************************************/ - - - -#ifndef _SMARTPOINTER_H -#define _SMARTPOINTER_H - -//#include -#include -#include - - - -template -class P { - private: - T* p; - public: - P() : p(0) { } - P(T* rawptr) : p(rawptr) { } - P(const P& ptr) : p((T*)ptr) { } - - template - P(const P& ptr) : p((T*)ptr) { } - - ~P() { } - - operator T*() const { return p; } - T& operator*() const { - if (p == 0) { - //throw std::runtime_error("Null dereference in P::operator*() const "); - fprintf(stderr, "Null dereference in P::operator*() const \n "); - exit(1); - } - return *p; - } - T* operator->() const { - if (p == 0) { - fprintf(stderr, "Null dereference in P::operator->() const \n "); - //throw std::runtime_error("Null dereference in P::operator->() const "); - //std::cerr << "Null dereference in P::operator->() const " << std::endl; - exit(1); - } - return p; - } - T* pointee() const { return p;} - P& operator=(T* p_) { p = p_; return *this;} - - P& operator=(const P& p_) { return operator=((T *) p_); } - template P& cast(T2* p_) { return operator=(dynamic_cast(p_)); } - template P& cast(const P& p_) { return operator=(dynamic_cast(p_)); } -}; - - -#endif