_Ptr getPtr()
{ return _dptr; }
+ _constPtr cgetPtr()
+ { return _dptr; }
+
private:
_Ptr _dptr;
};
* if the pointer is \c NULL.
*/
template<class _D, class _Ptr>
- inline std::ostream &
- operator<<( std::ostream & str, const RW_pointer<_D, _Ptr> & obj )
+ inline std::ostream & operator<<( std::ostream & str, const RW_pointer<_D, _Ptr> & obj )
{
if ( obj.get() )
return str << *obj.get();
/** \relates RW_pointer */
template<class _D, class _Ptr>
- inline bool
- operator==( const RW_pointer<_D, _Ptr> & lhs, const RW_pointer<_D, _Ptr> & rhs )
- {
- return( lhs.get() == rhs.get() );
- }
+ inline bool operator==( const RW_pointer<_D, _Ptr> & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const RW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_Ptr & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const typename _Ptr::_Ptr & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const RW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_constPtr & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const typename _Ptr::_constPtr & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
+
/** \relates RW_pointer */
template<class _D, class _Ptr>
- inline bool
- operator!=( const RW_pointer<_D, _Ptr> & lhs, const RW_pointer<_D, _Ptr> & rhs )
- {
- return ! ( lhs == rhs );
- }
+ inline bool operator!=( const RW_pointer<_D, _Ptr> & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const RW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_Ptr & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const typename _Ptr::_Ptr & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const RW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_constPtr & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const typename _Ptr::_constPtr & lhs, const RW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
///////////////////////////////////////////////////////////////////
_Ptr getPtr()
{ assertUnshared(); return _dptr; }
+ _constPtr cgetPtr()
+ { return _dptr; }
+
private:
void assertUnshared()
* if the pointer is \c NULL.
*/
template<class _D, class _Ptr>
- inline std::ostream &
- operator<<( std::ostream & str, const RWCOW_pointer<_D, _Ptr> & obj )
+ inline std::ostream & operator<<( std::ostream & str, const RWCOW_pointer<_D, _Ptr> & obj )
{
if ( obj.get() )
return str << *obj.get();
/** \relates RWCOW_pointer */
template<class _D, class _Ptr>
- inline bool
- operator==( const RWCOW_pointer<_D, _Ptr> & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
- {
- return( lhs.get() == rhs.get() );
- }
+ inline bool operator==( const RWCOW_pointer<_D, _Ptr> & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const RWCOW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_Ptr & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const typename _Ptr::_Ptr & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const RWCOW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_constPtr & rhs )
+ { return( lhs.get() == rhs.get() ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator==( const typename _Ptr::_constPtr & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return( lhs.get() == rhs.get() ); }
/** \relates RWCOW_pointer */
template<class _D, class _Ptr>
- inline bool
- operator!=( const RWCOW_pointer<_D, _Ptr> & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
- {
- return ! ( lhs == rhs );
- }
+ inline bool operator!=( const RWCOW_pointer<_D, _Ptr> & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const RWCOW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_Ptr & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const typename _Ptr::_Ptr & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const RWCOW_pointer<_D, _Ptr> & lhs, const typename _Ptr::_constPtr & rhs )
+ { return ! ( lhs == rhs ); }
+ /** \relates RWCOW_pointer */
+ template<class _D, class _Ptr>
+ inline bool operator!=( const typename _Ptr::_constPtr & lhs, const RWCOW_pointer<_D, _Ptr> & rhs )
+ { return ! ( lhs == rhs ); }
///////////////////////////////////////////////////////////////////