Rosetta 3.3
Classes | Namespaces | Functions
src/utility/pointer/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

namespace  utility
 

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


namespace  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
template<typename T >
bool utility::pointer::operator== (access_ptr< T > const &a, T const *const b)
 access_ptr == pointer
template<typename T >
bool utility::pointer::operator== (T const *const a, access_ptr< T > const &b)
 pointer == access_ptr
template<typename T , typename U >
bool utility::pointer::operator!= (access_ptr< T > const &a, access_ptr< U > const &b)
 access_ptr != access_ptr
template<typename T >
bool utility::pointer::operator!= (access_ptr< T > const &a, T const *const b)
 access_ptr != pointer
template<typename T >
bool utility::pointer::operator!= (T const *const a, access_ptr< T > const &b)
 pointer != access_ptr
template<typename T , typename U >
bool utility::pointer::operator< (access_ptr< T > const &a, access_ptr< U > const &b)
 access_ptr < access_ptr
template<typename T >
bool utility::pointer::operator< (access_ptr< T > const &a, T const *const b)
 access_ptr < pointer
template<typename T >
bool utility::pointer::operator< (T const *const a, access_ptr< T > const &b)
 pointer < access_ptr
template<typename T >
void utility::pointer::swap (access_ptr< T > &a, access_ptr< T > &b)
 Swap two access_ptr objects.
template<typename T >
T * utility::pointer::get_pointer (access_ptr< T > const &a)
 Get pointer of access_ptr: needed by boost::mem_fn.
template<typename T , typename U >
access_ptr< T > utility::pointer::static_pointer_cast (access_ptr< U > const &a)
 Static cast an access_ptr.
template<typename T , typename U >
access_ptr< T > utility::pointer::const_pointer_cast (access_ptr< U > const &a)
 Const cast an access_ptr.
template<typename T , typename U >
access_ptr< T > utility::pointer::dynamic_pointer_cast (access_ptr< U > const &a)
 Dynamic cast an access_ptr.
template<typename T , typename U >
access_ptr< T > utility::pointer::down_pointer_cast (access_ptr< U > const &a)
 Down cast an access_ptr.
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.

Detailed Description

Non-owning access smart pointer.

Author:
Stuart G. Mentzer (Stuart_Mentzer@objexx.com)
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 >.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines