mn_memory.hpp File Reference

Go to the source code of this file.

Classes

struct  mn::memory::pointer_traits< TAllocator >
 
struct  mn::memory::pointer_traits< TAllocator >::rebind_to< U >
 
struct  mn::memory::pointer_traits< T * >
 
struct  mn::memory::pointer_traits< T * >::rebind_to< U >
 
struct  mn::memory::detail::ptr_void< class >
 
struct  mn::memory::detail::ptr_first< T< U, Args... > >
 
struct  mn::memory::detail::ptr_element< T, class >
 
struct  mn::memory::detail::ptr_element< T, typename ptr_void< typename T::element_type >::type >
 
struct  mn::memory::detail::ptr_difference< class, class >
 
struct  mn::memory::detail::ptr_transform< T< U, Args... >, V >
 
struct  mn::memory::detail::ptr_rebind< T, U, class >
 
struct  mn::memory::detail::ptr_rebind< T, U, typename ptr_void< typename T::template rebind< U > >::type >
 
struct  mn::memory::detail::ptr_value< T >
 
struct  mn::memory::detail::ptr_value< void >
 
struct  mn::memory::detail::ptr_value< void >::type
 

Namespaces

 mn
 
 mn::memory
 
 mn::memory::detail
 

Functions

template<class T >
constexpr T * mn::memory::to_address (T *v) noexcept
 
template<class T >
T * mn::memory::detail::ptr_address (T *v, int) noexcept
 
template<class T >
auto mn::memory::detail::ptr_address (const T &v, int) noexcept -> decltype(to_address(v))
 
template<class T >
auto mn::memory::detail::ptr_address (const T &v, long) noexcept
 
template<class T >
auto mn::memory::to_address (const T &v) noexcept
 

Variables

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

Detailed Description

This file is part of the Mini Thread Library (https://github.com/RoseLeBlood/MiniThread ).

Author
Copyright (c) 2021 Amber-Sophia Schroeck
License
The Mini Thread Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3, or (at your option) any later version.

The Mini Thread Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with the Mini Thread Library; if not, see https://www.gnu.org/licenses/.


Class Documentation

◆ mn::memory::pointer_traits::rebind_to

struct mn::memory::pointer_traits::rebind_to

template<class TAllocator>
template<class U>
struct mn::memory::pointer_traits< TAllocator >::rebind_to< U >

Class Members
typedef typename template rebind< U > type

◆ mn::memory::pointer_traits< T * >::rebind_to

struct mn::memory::pointer_traits< T * >::rebind_to

template<class T>
template<class U>
struct mn::memory::pointer_traits< T * >::rebind_to< U >

Class Members
typedef U * type

◆ 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< 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< 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 >

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

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