emlabcpp
modern opinionated embedded C++ library
emlabcpp::derived_storage< T, N > Class Template Reference

#include <derived_storage.h>

Public Types

using storage_type = std::byte[N]
 
using base_type = T
 

Public Member Functions

 derived_storage ()
 
template<std::derived_from< T > U>
 derived_storage (U &&item)
 
 derived_storage (derived_storage const &)=delete
 
 derived_storage (derived_storage &&)=delete
 
derived_storageoperator= (derived_storage const &)=delete
 
derived_storageoperator= (derived_storage &&)=delete
 
T & operator* ()
 
T const & operator* () const
 
T * operator-> ()
 
T const * operator-> () const
 
 operator bool () const
 
T & get ()
 
T const & get () const
 
 ~derived_storage ()
 

Member Typedef Documentation

◆ base_type

template<typename T , std::size_t N>
using emlabcpp::derived_storage< T, N >::base_type = T

◆ storage_type

template<typename T , std::size_t N>
using emlabcpp::derived_storage< T, N >::storage_type = std::byte[N]

Constructor & Destructor Documentation

◆ derived_storage() [1/4]

template<typename T , std::size_t N>
emlabcpp::derived_storage< T, N >::derived_storage ( )
inline

◆ derived_storage() [2/4]

template<typename T , std::size_t N>
template<std::derived_from< T > U>
emlabcpp::derived_storage< T, N >::derived_storage ( U &&  item)
inline

◆ derived_storage() [3/4]

template<typename T , std::size_t N>
emlabcpp::derived_storage< T, N >::derived_storage ( derived_storage< T, N > const &  )
delete

◆ derived_storage() [4/4]

template<typename T , std::size_t N>
emlabcpp::derived_storage< T, N >::derived_storage ( derived_storage< T, N > &&  )
delete

◆ ~derived_storage()

template<typename T , std::size_t N>
emlabcpp::derived_storage< T, N >::~derived_storage ( )
inline

Member Function Documentation

◆ get() [1/2]

template<typename T , std::size_t N>
T& emlabcpp::derived_storage< T, N >::get ( )
inline

◆ get() [2/2]

template<typename T , std::size_t N>
T const& emlabcpp::derived_storage< T, N >::get ( ) const
inline

◆ operator bool()

template<typename T , std::size_t N>
emlabcpp::derived_storage< T, N >::operator bool ( ) const
inline

◆ operator*() [1/2]

template<typename T , std::size_t N>
T& emlabcpp::derived_storage< T, N >::operator* ( )
inline

◆ operator*() [2/2]

template<typename T , std::size_t N>
T const& emlabcpp::derived_storage< T, N >::operator* ( ) const
inline

◆ operator->() [1/2]

template<typename T , std::size_t N>
T* emlabcpp::derived_storage< T, N >::operator-> ( )
inline

◆ operator->() [2/2]

template<typename T , std::size_t N>
T const* emlabcpp::derived_storage< T, N >::operator-> ( ) const
inline

◆ operator=() [1/2]

template<typename T , std::size_t N>
derived_storage& emlabcpp::derived_storage< T, N >::operator= ( derived_storage< T, N > &&  )
delete

◆ operator=() [2/2]

template<typename T , std::size_t N>
derived_storage& emlabcpp::derived_storage< T, N >::operator= ( derived_storage< T, N > const &  )
delete

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