libcopp  2.2.0
Public Types | Static Public Member Functions
future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > > Struct Template Reference

#include <storage.h>

Inheritance diagram for future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >:
Inheritance graph
Collaboration diagram for future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >:
Collaboration graph

Public Types

using value_type = T
 
using ptr_type = std::unique_ptr< T, small_object_optimize_storage_deleter< T > >
 
using storage_type = T
 

Static Public Member Functions

static UTIL_FORCEINLINE bool is_shared_storage () LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE void destroy_storage (storage_type &)
 
static UTIL_FORCEINLINE void construct_default_storage (storage_type &out) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE void construct_storage (storage_type &out) LIBCOPP_MACRO_NOEXCEPT
 
template<class U , class UDELETOR , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value||std::is_convertible< typename std::decay< U >::type, T >::value, bool >::type = false>
static UTIL_FORCEINLINE void construct_storage (storage_type &out, std::unique_ptr< U, UDELETOR > &&in) LIBCOPP_MACRO_NOEXCEPT
 
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value||std::is_convertible< typename std::decay< U >::type, T >::value, bool >::type = false>
static UTIL_FORCEINLINE void construct_storage (storage_type &out, U &&in) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE void clone_storage (storage_type &out, const storage_type &in) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE void move_storage (storage_type &out, storage_type &&in) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE void swap (storage_type &l, storage_type &r) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE value_typeunwrap (storage_type &storage) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE const value_typeunwrap (const storage_type &storage) LIBCOPP_MACRO_NOEXCEPT
 
static UTIL_FORCEINLINE ptr_type clone_ptr (storage_type &storage) LIBCOPP_MACRO_NOEXCEPT
 

Detailed Description

template<class T>
struct future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >

Definition at line 263 of file storage.h.

Member Typedef Documentation

◆ ptr_type

template<class T >
using future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::ptr_type = std::unique_ptr<T, small_object_optimize_storage_deleter<T> >

Definition at line 266 of file storage.h.

◆ storage_type

template<class T >
using future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::storage_type = T

Definition at line 267 of file storage.h.

◆ value_type

template<class T >
using future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::value_type = T

Definition at line 265 of file storage.h.

Member Function Documentation

◆ clone_ptr()

template<class T >
static UTIL_FORCEINLINE ptr_type future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::clone_ptr ( storage_type storage)
inlinestatic

Definition at line 320 of file storage.h.

◆ clone_storage()

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::clone_storage ( storage_type out,
const storage_type in 
)
inlinestatic

Definition at line 301 of file storage.h.

◆ construct_default_storage()

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::construct_default_storage ( storage_type out)
inlinestatic

Definition at line 273 of file storage.h.

◆ construct_storage() [1/3]

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::construct_storage ( storage_type out)
inlinestatic

Definition at line 277 of file storage.h.

◆ construct_storage() [2/3]

template<class T >
template<class U , class UDELETOR , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value||std::is_convertible< typename std::decay< U >::type, T >::value, bool >::type = false>
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::construct_storage ( storage_type out,
std::unique_ptr< U, UDELETOR > &&  in 
)
inlinestatic

Definition at line 285 of file storage.h.

◆ construct_storage() [3/3]

template<class T >
template<class U , typename std::enable_if< std::is_base_of< T, typename std::decay< U >::type >::value||std::is_convertible< typename std::decay< U >::type, T >::value, bool >::type = false>
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::construct_storage ( storage_type out,
U &&  in 
)
inlinestatic

Definition at line 297 of file storage.h.

◆ destroy_storage()

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::destroy_storage ( storage_type )
inlinestatic

Definition at line 270 of file storage.h.

◆ is_shared_storage()

template<class T >
static UTIL_FORCEINLINE bool future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::is_shared_storage ( )
inlinestatic

Definition at line 269 of file storage.h.

◆ move_storage()

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::move_storage ( storage_type out,
storage_type &&  in 
)
inlinestatic

Definition at line 305 of file storage.h.

◆ swap()

template<class T >
static UTIL_FORCEINLINE void future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::swap ( storage_type l,
storage_type r 
)
inlinestatic

Definition at line 310 of file storage.h.

◆ unwrap() [1/2]

template<class T >
static UTIL_FORCEINLINE const value_type* future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::unwrap ( const storage_type storage)
inlinestatic

Definition at line 317 of file storage.h.

◆ unwrap() [2/2]

template<class T >
static UTIL_FORCEINLINE value_type* future::compact_storage< T, std::unique_ptr< T, small_object_optimize_storage_deleter< T > > >::unwrap ( storage_type storage)
inlinestatic

Definition at line 316 of file storage.h.


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