From 6f9c2db8a8815126f468be54b398e79addbdaf49 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 30 Nov 2012 13:32:25 -0600 Subject: [PATCH] libCom: Revert 12374 which breaks MSVC++ builds Both the Microsoft 2008 and 2010 compilers fail with this change. --- src/libCom/cxxTemplates/epicsSingleton.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 =