From: guido Date: Fri, 4 Sep 1998 14:37:07 +0000 (+0000) Subject: Separate file for SmartReference X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=007d012453719d357086b322d873375052f7cef0;p=dealii-svn.git Separate file for SmartReference git-svn-id: https://svn.dealii.org/trunk@567 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/base/include/base/smartreference.h b/deal.II/base/include/base/smartreference.h new file mode 100644 index 0000000000..0ffcc819b2 --- /dev/null +++ b/deal.II/base/include/base/smartreference.h @@ -0,0 +1,50 @@ +/*---------------------------- smartreference.h ---------------------------*/ +/* $Id$ */ +#ifndef __smartreference_H +#define __smartreference_H +/*---------------------------- smartreference.h ---------------------------*/ + +#include + +/** + * Smart references avoid destruction of a referenced object. This + * class has not been fully developed, since the compiler could not + * resolve the dot operator in a convenient manner. The use of + * #SmartPointer# is recommended, instead. + */ +template +class SmartReference +{ + T& t; + + public: + /** + * Constructor taking a normal reference. + */ + SmartReference(const T& tt) + : t(tt) + { + t.subscribe(); + } + + /** + * Destructor, removing the subscription. + */ + ~SmartReference() + { + t.unsubscribe(); + } + + /** + * Conversion to normal reference + */ + operator T& () const + { + return t; + } +}; + +/*---------------------------- smartreference.h ---------------------------*/ +/* end of #ifndef __smartreference_H */ +#endif +/*---------------------------- smartreference.h ---------------------------*/ diff --git a/deal.II/base/include/base/subscriptor.h b/deal.II/base/include/base/subscriptor.h index e2c4482f3d..34f780ba24 100644 --- a/deal.II/base/include/base/subscriptor.h +++ b/deal.II/base/include/base/subscriptor.h @@ -97,54 +97,6 @@ class Subscriptor } }; - - - - -/** - * Smart references avoid destruction of a referenced object. This - * class has not been fully developed, since the compiler could not - * resolve the dot operator in a convenient manner. The use of - * #SmartPointer# is recommended, instead. - */ -template -class SmartReference -{ - T& t; - - public: - /** - * Constructor taking a normal reference. - */ - SmartReference(const T& tt) - : t(tt) - { - t.subscribe(); - } - - /** - * Destructor, removing the subscription. - */ - ~SmartReference() - { - t.unsubscribe(); - } - - /** - * Conversion to normal reference - */ - operator T& () const - { - return t; - } -}; - - - - - - - /*---------------------------- subscriptor.h ---------------------------*/ /* end of #ifndef __subscriptor_H */ #endif