From 4026d9f27cf598a20462dfaffa5bea713f63dc24 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 6 Jan 2009 21:53:04 +0000 Subject: [PATCH] Nested classes have no special access priviledges to their outer class, but only the vxWorks compiler seems to check this. Added friend to fix. An implicit constructor is only created if no user-defined ones exist. --- src/libCom/cxxTemplates/epicsSingleton.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libCom/cxxTemplates/epicsSingleton.h b/src/libCom/cxxTemplates/epicsSingleton.h index 81f3fdf38..5154cab0f 100644 --- a/src/libCom/cxxTemplates/epicsSingleton.h +++ b/src/libCom/cxxTemplates/epicsSingleton.h @@ -35,8 +35,8 @@ public: private: void * _pInstance; size_t _refCount; - SingletonUntyped ( const SingletonUntyped & ); - SingletonUntyped & operator = ( const SingletonUntyped & ); + SingletonUntyped ( const SingletonUntyped & ); + SingletonUntyped & operator = ( const SingletonUntyped & ); }; // This class exists for the purpose of avoiding file scope @@ -49,17 +49,17 @@ public: class reference { public: reference ( epicsSingleton & ); - reference ( const reference & ); + reference ( const reference & ); ~reference (); - reference & operator = ( const reference & ); + reference & operator = ( const reference & ); TYPE * operator -> (); const TYPE * operator -> () const; TYPE & operator * (); const TYPE & operator * () const; private: epicsSingleton * _pSingleton; - reference (); // disabled }; + friend class reference; epicsSingleton () {} // mutex lock/unlock pair overhead incured // when either of these are called @@ -69,8 +69,8 @@ private: SingletonUntyped _singletonUntyped; static void * _build (); static void _destroy ( void * ); - epicsSingleton ( const epicsSingleton & ); - epicsSingleton & operator = ( const epicsSingleton & ); + epicsSingleton ( const epicsSingleton & ); + epicsSingleton & operator = ( const epicsSingleton & ); }; template < class TYPE >