scnlib  0.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scn::detail::erased_storage< T > Class Template Reference

#include <util.h>

Public Types

using value_type = T
 
using pointer = T *
 
using storage_type = unsigned char[sizeof(T)]
 

Public Member Functions

constexpr erased_storage () noexcept=default
 
 erased_storage (T val) noexcept(std::is_nothrow_move_constructible< T >::value)
 
 erased_storage (const erased_storage &other)
 
erased_storageoperator= (const erased_storage &other)
 
 erased_storage (erased_storage &&other) noexcept
 
erased_storageoperator= (erased_storage &&other) noexcept
 
 ~erased_storage () noexcept
 
constexpr bool has_value () const noexcept
 
constexpr operator bool () const noexcept
 
SCN_CONSTEXPR14 T & get () noexcept
 
SCN_CONSTEXPR14 const T & get () const noexcept
 
SCN_CONSTEXPR14 T & operator* () noexcept
 
SCN_CONSTEXPR14 const T & operator* () const noexcept
 
SCN_CONSTEXPR14 T * operator-> () noexcept
 
SCN_CONSTEXPR14 const T * operator-> () const noexcept
 

Detailed Description

template<typename T>
class scn::detail::erased_storage< T >

Definition at line 704 of file util.h.

Member Typedef Documentation

template<typename T >
using scn::detail::erased_storage< T >::pointer = T*

Definition at line 707 of file util.h.

template<typename T >
using scn::detail::erased_storage< T >::storage_type = unsigned char[sizeof(T)]

Definition at line 708 of file util.h.

template<typename T >
using scn::detail::erased_storage< T >::value_type = T

Definition at line 706 of file util.h.

Constructor & Destructor Documentation

template<typename T >
constexpr scn::detail::erased_storage< T >::erased_storage ( )
defaultnoexcept
template<typename T >
scn::detail::erased_storage< T >::erased_storage ( val)
inlinenoexcept

Definition at line 712 of file util.h.

template<typename T >
scn::detail::erased_storage< T >::erased_storage ( const erased_storage< T > &  other)
inline

Definition at line 718 of file util.h.

template<typename T >
scn::detail::erased_storage< T >::erased_storage ( erased_storage< T > &&  other)
inlinenoexcept

Definition at line 733 of file util.h.

template<typename T >
scn::detail::erased_storage< T >::~erased_storage ( )
inlinenoexcept

Definition at line 751 of file util.h.

Member Function Documentation

template<typename T >
SCN_CONSTEXPR14 T& scn::detail::erased_storage< T >::get ( )
inlinenoexcept

Definition at line 765 of file util.h.

template<typename T >
SCN_CONSTEXPR14 const T& scn::detail::erased_storage< T >::get ( ) const
inlinenoexcept

Definition at line 770 of file util.h.

template<typename T >
constexpr bool scn::detail::erased_storage< T >::has_value ( ) const
inlinenoexcept

Definition at line 756 of file util.h.

template<typename T >
constexpr scn::detail::erased_storage< T >::operator bool ( ) const
inlineexplicitnoexcept

Definition at line 760 of file util.h.

template<typename T >
SCN_CONSTEXPR14 T& scn::detail::erased_storage< T >::operator* ( )
inlinenoexcept

Definition at line 776 of file util.h.

template<typename T >
SCN_CONSTEXPR14 const T& scn::detail::erased_storage< T >::operator* ( ) const
inlinenoexcept

Definition at line 781 of file util.h.

template<typename T >
SCN_CONSTEXPR14 T* scn::detail::erased_storage< T >::operator-> ( )
inlinenoexcept

Definition at line 787 of file util.h.

template<typename T >
SCN_CONSTEXPR14 const T* scn::detail::erased_storage< T >::operator-> ( ) const
inlinenoexcept

Definition at line 791 of file util.h.

template<typename T >
erased_storage& scn::detail::erased_storage< T >::operator= ( const erased_storage< T > &  other)
inline

Definition at line 724 of file util.h.

template<typename T >
erased_storage& scn::detail::erased_storage< T >::operator= ( erased_storage< T > &&  other)
inlinenoexcept

Definition at line 740 of file util.h.


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