libcopp 2.3.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Static Public Member Functions
future::poll_storage_base< T, TPTR > Struct Template Reference

#include <storage.h>

Inheritance diagram for future::poll_storage_base< T, TPTR >:
Inheritance graph
Collaboration diagram for future::poll_storage_base< T, TPTR >:
Collaboration graph

Public Types

using value_type = T
 
using ptr_type = TPTR
 
using storage_type = ptr_type
 

Static Public Member Functions

static LIBCOPP_UTIL_FORCEINLINE void construct_default_storage (storage_type &out) noexcept
 
template<class U , class UDELETOR , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void construct_storage (storage_type &out, std::unique_ptr< U, UDELETOR > &&in) noexcept
 
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value &&type_traits::is_shared_ptr< ptr_type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void construct_storage (storage_type &out, LIBCOPP_COPP_NAMESPACE_ID::memory::strong_rc_ptr< U > &&in) noexcept
 
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value &&type_traits::is_shared_ptr< ptr_type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void construct_storage (storage_type &out, ::std::shared_ptr< U > &&in) noexcept
 
template<class... U>
static LIBCOPP_UTIL_FORCEINLINE void construct_storage (storage_type &out, U &&...in) noexcept(std::is_nothrow_constructible< value_type, U... >::value)
 
static LIBCOPP_UTIL_FORCEINLINE void move_storage (storage_type &out, storage_type &&in) noexcept
 
static LIBCOPP_UTIL_FORCEINLINE void reset (storage_type &storage) noexcept
 
static LIBCOPP_UTIL_FORCEINLINE void swap (storage_type &l, storage_type &r) noexcept
 
static LIBCOPP_UTIL_FORCEINLINE const ptr_typeunwrap (const storage_type &storage) noexcept
 
static LIBCOPP_UTIL_FORCEINLINE ptr_typeunwrap (storage_type &storage) noexcept
 

Detailed Description

template<class T, class TPTR>
struct future::poll_storage_base< T, TPTR >

Definition at line 222 of file storage.h.

Member Typedef Documentation

◆ ptr_type

template<class T , class TPTR >
using future::poll_storage_base< T, TPTR >::ptr_type = TPTR

Definition at line 224 of file storage.h.

◆ storage_type

template<class T , class TPTR >
using future::poll_storage_base< T, TPTR >::storage_type = ptr_type

Definition at line 225 of file storage.h.

◆ value_type

template<class T , class TPTR >
using future::poll_storage_base< T, TPTR >::value_type = T

Definition at line 223 of file storage.h.

Member Function Documentation

◆ construct_default_storage()

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::construct_default_storage ( storage_type out)
inlinestaticnoexcept

Definition at line 227 of file storage.h.

◆ construct_storage() [1/4]

template<class T , class TPTR >
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value &&type_traits::is_shared_ptr< ptr_type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::construct_storage ( storage_type out,
::std::shared_ptr< U > &&  in 
)
inlinestaticnoexcept

Definition at line 247 of file storage.h.

◆ construct_storage() [2/4]

template<class T , class TPTR >
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value &&type_traits::is_shared_ptr< ptr_type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::construct_storage ( storage_type out,
LIBCOPP_COPP_NAMESPACE_ID::memory::strong_rc_ptr< U > &&  in 
)
inlinestaticnoexcept

Definition at line 239 of file storage.h.

◆ construct_storage() [3/4]

template<class T , class TPTR >
template<class U , class UDELETOR , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value, bool >::type = false>
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::construct_storage ( storage_type out,
std::unique_ptr< U, UDELETOR > &&  in 
)
inlinestaticnoexcept

Definition at line 231 of file storage.h.

◆ construct_storage() [4/4]

template<class T , class TPTR >
template<class... U>
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::construct_storage ( storage_type out,
U &&...  in 
)
inlinestaticnoexcept

Definition at line 252 of file storage.h.

◆ move_storage()

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::move_storage ( storage_type out,
storage_type &&  in 
)
inlinestaticnoexcept

Definition at line 257 of file storage.h.

◆ reset()

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::reset ( storage_type storage)
inlinestaticnoexcept

Definition at line 261 of file storage.h.

◆ swap()

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE void future::poll_storage_base< T, TPTR >::swap ( storage_type l,
storage_type r 
)
inlinestaticnoexcept

Definition at line 262 of file storage.h.

References std::swap().

◆ unwrap() [1/2]

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE const ptr_type & future::poll_storage_base< T, TPTR >::unwrap ( const storage_type storage)
inlinestaticnoexcept

Definition at line 264 of file storage.h.

◆ unwrap() [2/2]

template<class T , class TPTR >
static LIBCOPP_UTIL_FORCEINLINE ptr_type & future::poll_storage_base< T, TPTR >::unwrap ( storage_type storage)
inlinestaticnoexcept

Definition at line 265 of file storage.h.


The documentation for this struct was generated from the following file: