mn::memory::detail Namespace Reference

Classes

struct  ptr_void
 
struct  ptr_first
 
struct  ptr_first< T< U, Args... > >
 
struct  ptr_element
 
struct  ptr_element< T, typename ptr_void< typename T::element_type >::type >
 
struct  ptr_difference
 
struct  ptr_transform
 
struct  ptr_transform< T< U, Args... >, V >
 
struct  ptr_rebind
 
struct  ptr_rebind< T, U, typename ptr_void< typename T::template rebind< U > >::type >
 
struct  ptr_value
 
struct  ptr_value< void >
 

Functions

template<class T >
Tptr_address (T *v, int) noexcept
 
template<class T >
auto ptr_address (const T &v, int) noexcept -> decltype(to_address(v))
 
template<class T >
auto ptr_address (const T &v, long) noexcept
 

Variables

struct mn::memory::detail::ptr_difference T
 
struct mn::memory::detail::ptr_difference type = typename T::difference_type
 

Class Documentation

◆ mn::memory::detail::ptr_void

struct mn::memory::detail::ptr_void

template<class>
struct mn::memory::detail::ptr_void< class >

Class Members
typedef void type

◆ mn::memory::detail::ptr_first

struct mn::memory::detail::ptr_first

template<class T>
struct mn::memory::detail::ptr_first< T >

◆ mn::memory::detail::ptr_first< T< U, Args... > >

struct mn::memory::detail::ptr_first< T< U, Args... > >

template<template< class, class... > class T, class U, class... Args>
struct mn::memory::detail::ptr_first< T< U, Args... > >

Class Members
typedef U type

◆ mn::memory::detail::ptr_element

struct mn::memory::detail::ptr_element

template<class T, class = void>
struct mn::memory::detail::ptr_element< T, class >

Class Members
typedef typename ptr_first< T >::type type

◆ mn::memory::detail::ptr_element< T, typename ptr_void< typename T::element_type >::type >

struct mn::memory::detail::ptr_element< T, typename ptr_void< typename T::element_type >::type >

template<class T>
struct mn::memory::detail::ptr_element< T, typename ptr_void< typename T::element_type >::type >

◆ mn::memory::detail::ptr_difference

struct mn::memory::detail::ptr_difference

template<class, class = void>
struct mn::memory::detail::ptr_difference< class, class >

Class Members
typedef ptrdiff_t type

◆ mn::memory::detail::ptr_transform

struct mn::memory::detail::ptr_transform

template<class T, class V>
struct mn::memory::detail::ptr_transform< T, V >

◆ mn::memory::detail::ptr_transform< T< U, Args... >, V >

struct mn::memory::detail::ptr_transform< T< U, Args... >, V >

template<template< class, class... > class T, class U, class... Args, class V>
struct mn::memory::detail::ptr_transform< T< U, Args... >, V >

Class Members
type

◆ mn::memory::detail::ptr_rebind

struct mn::memory::detail::ptr_rebind

template<class T, class U, class = void>
struct mn::memory::detail::ptr_rebind< T, U, class >

Class Members
typedef typename ptr_transform< T, U >::type type

◆ mn::memory::detail::ptr_rebind< T, U, typename ptr_void< typename T::template rebind< U > >::type >

struct mn::memory::detail::ptr_rebind< T, U, typename ptr_void< typename T::template rebind< U > >::type >

template<class T, class U>
struct mn::memory::detail::ptr_rebind< T, U, typename ptr_void< typename T::template rebind< U > >::type >

Class Members
typedef typename template rebind< U > type

◆ mn::memory::detail::ptr_value

struct mn::memory::detail::ptr_value

template<class T>
struct mn::memory::detail::ptr_value< T >

Class Members
typedef T type

◆ mn::memory::detail::ptr_value< void >

struct mn::memory::detail::ptr_value< void >

Function Documentation

◆ ptr_address() [1/3]

template<class T >
auto mn::memory::detail::ptr_address ( const T v,
int   
) -> decltype(to_address(v))
inlinenoexcept

◆ ptr_address() [2/3]

template<class T >
auto mn::memory::detail::ptr_address ( const T v,
long   
)
inlinenoexcept

◆ ptr_address() [3/3]

template<class T >
T* mn::memory::detail::ptr_address ( T v,
int   
)
inlinenoexcept

Variable Documentation

◆ T

struct mn::memory::detail::ptr_difference mn::memory::detail::T

◆ type

struct mn::memory::detail::ptr_difference mn::memory::detail::type = typename T::difference_type