12 #ifndef BOOST_CORE_ADDRESSOF_HPP 13 #define BOOST_CORE_ADDRESSOF_HPP 40 return reinterpret_cast<T*
>(
41 &
const_cast<char&
>(
reinterpret_cast<const volatile char &
>(
v)));
50 #if !defined( BOOST_NO_CXX11_NULLPTR ) 52 #if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) 64 typedef addr_nullptr_t
T;
74 typedef addr_nullptr_t
const T;
84 typedef addr_nullptr_t
volatile T;
94 typedef addr_nullptr_t
const volatile T;
110 #if (defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x610 ) ) ) || (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5120)) 121 #if defined( __SUNPRO_CC ) && BOOST_WORKAROUND( __SUNPRO_CC, BOOST_TESTED_AT( 0x590 ) ) 126 template<
class T>
struct addressof_addp
133 template<
class T, std::
size_t N >
144 #if defined( __BORLANDC__ ) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 145 template<
typename T,std::
size_t N>
149 return reinterpret_cast<T(*)[N]
>(&
t);
152 template<
typename T,std::
size_t N>
156 return reinterpret_cast<const T(*)[N]
>(&
t);
162 #endif // BOOST_CORE_ADDRESSOF_HPP
BOOST_FORCEINLINE T * addressof(T &v)
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
addr_impl_ref & operator=(const addr_impl_ref &)
static BOOST_FORCEINLINE T * f(T &v, int)
addr_nullptr_t volatile T
addr_nullptr_t const volatile T
static BOOST_FORCEINLINE T * f(T &v, long)
static BOOST_FORCEINLINE T * f(T &v, int)
detail namespace with internal helper functions
static BOOST_FORCEINLINE T * f(T *v, int)
static BOOST_FORCEINLINE T * f(T &v, int)
BOOST_FORCEINLINE addr_impl_ref(T &v)
#define BOOST_FORCEINLINE
std::nullptr_t addr_nullptr_t
static BOOST_FORCEINLINE T * f(T &v, int)