Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
offset_ptr.hpp File Reference

Describes a smart pointer that stores the offset between this pointer and target pointee, called offset_ptr. More...

#include <boost/interprocess/detail/config_begin.hpp>
#include <boost/interprocess/detail/workaround.hpp>
#include <boost/interprocess/interprocess_fwd.hpp>
#include <boost/interprocess/detail/utilities.hpp>
#include <boost/interprocess/detail/cast_tags.hpp>
#include <boost/interprocess/detail/mpl.hpp>
#include <boost/assert.hpp>
#include <ostream>
#include <istream>
#include <iterator>
#include <iostream>
#include <boost/aligned_storage.hpp>
#include <boost/type_traits/alignment_of.hpp>
#include <boost/interprocess/detail/config_end.hpp>
Include dependency graph for offset_ptr.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::has_trivial_constructor< T >
 
struct  boost::has_trivial_destructor< T >
 
union  boost::interprocess::ipcdetail::offset_ptr_internal< OffsetType, OffsetAlignment >
 
struct  boost::interprocess::ipcdetail::offset_ptr_maintains_address< From, To >
 
class  boost::interprocess::offset_ptr< PointedType, DifferenceType, OffsetType, OffsetAlignment >
 A smart pointer that stores the offset between between the pointer and the the object it points. More...
 
struct  boost::interprocess::offset_ptr< PointedType, DifferenceType, OffsetType, OffsetAlignment >::rebind< U >
 Compatibility with pointer_traits. More...
 
struct  boost::has_trivial_constructor< boost::interprocess::offset_ptr< T, P, O, A > >
 has_trivial_constructor<> == true_type specialization for optimizations More...
 
struct  boost::has_trivial_destructor< boost::interprocess::offset_ptr< T, P, O, A > >
 has_trivial_destructor<> == true_type specialization for optimizations More...
 
struct  boost::intrusive::max_pointer_plus_bits< VoidPointer, Alignment >
 This trait class is used to know if a pointer can embed extra bits of information if it's going to be used to point to objects with an alignment of "Alignment" bytes. More...
 
struct  boost::intrusive::max_pointer_plus_bits< boost::interprocess::offset_ptr< void, P, O, A >, OffsetAlignment >
 
struct  boost::intrusive::pointer_plus_bits< Pointer, NumBits >
 This is class that is supposed to have static methods to embed extra bits of information in a pointer. More...
 
struct  boost::intrusive::pointer_plus_bits< boost::interprocess::offset_ptr< T, P, O, A >, NumBits >
 
struct  boost::pointer_to_other< T, U >
 
struct  boost::pointer_to_other< ::boost::interprocess::offset_ptr< PointedType, DifferenceType, OffsetType, OffsetAlignment >, U >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::interprocess
 
 boost::interprocess::ipcdetail
 
 boost::intrusive
 

Macros

#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_PTR
 
#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_PTR
 
#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_OFF
 
#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_OFF
 
#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_OFF_FROM_OTHER
 
#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_OFF_FROM_OTHER
 

Functions

template<int Dummy>
void * boost::interprocess::ipcdetail::offset_ptr_to_raw_pointer (const volatile void *this_ptr, std::size_t offset)
 
template<int Dummy>
std::size_t boost::interprocess::ipcdetail::offset_ptr_to_offset (const volatile void *ptr, const volatile void *this_ptr)
 
template<int Dummy>
std::size_t boost::interprocess::ipcdetail::offset_ptr_to_offset_from_other (const volatile void *this_ptr, const volatile void *other_ptr, std::size_t other_offset)
 
template<class E , class T , class W , class X , class Y , std::size_t Z>
std::basic_ostream< E, T > & boost::interprocess::operator<< (std::basic_ostream< E, T > &os, offset_ptr< W, X, Y, Z > const &p)
 operator<< for offset ptr More...
 
template<class E , class T , class W , class X , class Y , std::size_t Z>
std::basic_istream< E, T > & boost::interprocess::operator>> (std::basic_istream< E, T > &is, offset_ptr< W, X, Y, Z > &p)
 operator>> for offset ptr More...
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
boost::interprocess::offset_ptr
< T1, P1, O1, A1
boost::interprocess::static_pointer_cast (const boost::interprocess::offset_ptr< T2, P2, O2, A2 > &r)
 Simulation of static_cast between pointers. Never throws. More...
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
boost::interprocess::offset_ptr
< T1, P1, O1, A1
boost::interprocess::const_pointer_cast (const boost::interprocess::offset_ptr< T2, P2, O2, A2 > &r)
 Simulation of const_cast between pointers. Never throws. More...
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
boost::interprocess::offset_ptr
< T1, P1, O1, A1
boost::interprocess::dynamic_pointer_cast (const boost::interprocess::offset_ptr< T2, P2, O2, A2 > &r)
 Simulation of dynamic_cast between pointers. Never throws. More...
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
boost::interprocess::offset_ptr
< T1, P1, O1, A1
boost::interprocess::reinterpret_pointer_cast (const boost::interprocess::offset_ptr< T2, P2, O2, A2 > &r)
 Simulation of reinterpret_cast between pointers. Never throws. More...
 
template<class T , class P , class O , std::size_t A>
Tboost::interprocess::to_raw_pointer (boost::interprocess::offset_ptr< T, P, O, A > const &p)
 to_raw_pointer() enables boost::mem_fn to recognize offset_ptr. More...
 

Detailed Description

Describes a smart pointer that stores the offset between this pointer and target pointee, called offset_ptr.

Macro Definition Documentation

#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_OFF
#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_OFF_FROM_OTHER
#define BOOST_INTERPROCESS_OFFSET_PTR_BRANCHLESS_TO_PTR
#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_OFF
#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_OFF_FROM_OTHER
#define BOOST_INTERPROCESS_OFFSET_PTR_INLINE_TO_PTR