diff --git a/src/libCom/cxxTemplates/epicsSingleton.h b/src/libCom/cxxTemplates/epicsSingleton.h index cf273d1ec..b97c82b8c 100644 --- a/src/libCom/cxxTemplates/epicsSingleton.h +++ b/src/libCom/cxxTemplates/epicsSingleton.h @@ -51,7 +51,11 @@ public: reference ( epicsSingleton & ); reference ( const reference & ); ~reference (); - reference & operator = ( const reference & ); + // this somewhat convoluted reference of the return + // type ref through the epicsSingleton template is + // required for the archaic Tornado gnu compiler + typename epicsSingleton < TYPE > :: reference & + operator = ( const reference & ); TYPE * operator -> (); const TYPE * operator -> () const; TYPE & operator * (); @@ -102,7 +106,7 @@ inline epicsSingleton < TYPE > :: reference :: } template < class TYPE > -class epicsSingleton < TYPE > :: reference & +typename epicsSingleton < TYPE > :: reference & epicsSingleton < TYPE > :: reference :: operator = ( const reference & ref ) { @@ -195,14 +199,14 @@ void epicsSingleton < TYPE > :: } template < class TYPE > -inline class epicsSingleton < TYPE > :: reference +inline typename epicsSingleton < TYPE > :: reference epicsSingleton < TYPE > :: getReference () { return reference ( * this ); } template < class TYPE > -inline const class epicsSingleton < TYPE > :: reference +inline const typename epicsSingleton < TYPE > :: reference epicsSingleton < TYPE > :: getReference () const { epicsSingleton < TYPE > * pConstCastAway =