Rosetta Utilities  2014.35
Classes | Namespaces | Functions
access_ptr.hh File Reference

Non-owning access smart pointer. More...

#include <utility/pointer/access_ptr.fwd.hh>
#include <utility/down_cast.hh>
#include <cassert>
#include <iosfwd>

Classes

class  utility::pointer::access_ptr< T >
 Non-owning access smart pointer. More...
 

Namespaces

 utility
 unresizable vector whose size is known at compile time, which may be allocated on the stack, and which indexes from 1.
 
 utility::pointer
 

Functions

template<typename T , typename U >
bool utility::pointer::operator== (access_ptr< T > const &a, access_ptr< U > const &b)
 access_ptr == access_ptr More...
 
template<typename T >
bool utility::pointer::operator== (access_ptr< T > const &a, T const *const b)
 access_ptr == pointer More...
 
template<typename T >
bool utility::pointer::operator== (T const *const a, access_ptr< T > const &b)
 pointer == access_ptr More...
 
template<typename T , typename U >
bool utility::pointer::operator!= (access_ptr< T > const &a, access_ptr< U > const &b)
 access_ptr != access_ptr More...
 
template<typename T >
bool utility::pointer::operator!= (access_ptr< T > const &a, T const *const b)
 access_ptr != pointer More...
 
template<typename T >
bool utility::pointer::operator!= (T const *const a, access_ptr< T > const &b)
 pointer != access_ptr More...
 
template<typename T , typename U >
bool utility::pointer::operator< (access_ptr< T > const &a, access_ptr< U > const &b)
 access_ptr < access_ptr More...
 
template<typename T >
bool utility::pointer::operator< (access_ptr< T > const &a, T const *const b)
 access_ptr < pointer More...
 
template<typename T >
bool utility::pointer::operator< (T const *const a, access_ptr< T > const &b)
 pointer < access_ptr More...
 
template<typename T >
void utility::pointer::swap (access_ptr< T > &a, access_ptr< T > &b)
 Swap two access_ptr objects. More...
 
template<typename T >
T * utility::pointer::get_pointer (access_ptr< T > const &a)
 Get pointer of access_ptr: needed by boost::mem_fn. More...
 
template<typename T , typename U >
access_ptr< T > utility::pointer::static_pointer_cast (access_ptr< U > const &a)
 Static cast an access_ptr. More...
 
template<typename T , typename U >
access_ptr< T > utility::pointer::const_pointer_cast (access_ptr< U > const &a)
 Const cast an access_ptr. More...
 
template<typename T , typename U >
access_ptr< T > utility::pointer::dynamic_pointer_cast (access_ptr< U > const &a)
 Dynamic cast an access_ptr. More...
 
template<typename T , typename U >
access_ptr< T > utility::pointer::down_pointer_cast (access_ptr< U > const &a)
 Down cast an access_ptr. More...
 
template<typename CharT , typename CharTraits , typename T >
std::basic_ostream< CharT,
CharTraits > & 
utility::pointer::operator<< (std::basic_ostream< CharT, CharTraits > &os, access_ptr< T > const &a)
 Stream output. More...
 

Detailed Description

Non-owning access smart pointer.

Author
Stuart G. Mentzer (Stuar.nosp@m.t_Me.nosp@m.ntzer.nosp@m.@obj.nosp@m.exx.c.nosp@m.om)
Remarks
  • Holds a pointer to an object for access but not ownership.
  • The object type can be const.
  • Can copy construct and assign from pointer, object, or access_ptr of an assignable type, including from access_ptr< T > to access_ptr< T const >.