Iros
 
Loading...
Searching...
No Matches
di::util::RebindableBox< T > Class Template Reference

#include <di/util/rebindable_box.h>

Public Member Functions

constexpr RebindableBox ()=default
 
constexpr RebindableBox (RebindableBox const &)=delete
 
constexpr RebindableBox (RebindableBox const &)=default
 
constexpr RebindableBox (RebindableBox &&)=default
 
template<typename U>
requires (!concepts::RemoveCVRefSameAs<T, U> && concepts::ConstructibleFrom<Storage, U const&> && detail::RebindableBoxCanConvertConstructor<T, U>)
constexpr explicit (!concepts::ConvertibleTo< U const &, Storage >) RebindableBox(RebindableBox< U > const &other)
 
template<typename U>
requires (!concepts::RemoveCVRefSameAs<T, U> && concepts::ConstructibleFrom<Storage, U> && detail::RebindableBoxCanConvertConstructor<T, U>)
constexpr explicit (!concepts::ConvertibleTo< U, Storage >) RebindableBox(RebindableBox< U > &&other)
 
template<typename U>
requires (!concepts::RemoveCVRefSameAs<U, RebindableBox> && concepts::ConstructibleFrom<Storage, U> && !concepts::RemoveCVRefSameAs<RebindableBox, U> && !concepts::RemoveCVRefSameAs<types::InPlace, U>)
constexpr RebindableBox (U &&value)
 
template<typename... Args>
requires (concepts::ConstructibleFrom<Storage, Args...>)
constexpr RebindableBox (types::InPlace, Args &&... args)
 
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<Storage, std::initializer_list<U>, Args...>)
constexpr RebindableBox (types::InPlace, std::initializer_list< U > list, Args &&... args)
 
constexpr ~RebindableBox ()=default
 
constexpr auto operator= (RebindableBox const &) -> RebindableBox &=default
 
constexpr auto operator= (RebindableBox &&) -> RebindableBox &=default
 
constexpr auto operator= (RebindableBox const &other) -> RebindableBox &requires(!concepts::TriviallyCopyAssignable< Storage > &&concepts::CopyConstructible< Storage >)
 
constexpr auto operator= (RebindableBox const &other) -> RebindableBox &requires(!concepts::TriviallyMoveAssignable< Storage > &&concepts::MoveConstructible< Storage >)
 
template<typename U>
requires (concepts::ConstructibleFrom<Storage, U const&>)
constexpr auto operator= (RebindableBox< U > const &other) -> RebindableBox &
 
template<typename U>
requires (concepts::ConstructibleFrom<Storage, U>)
constexpr auto operator= (RebindableBox< U > &&other) -> RebindableBox &
 
template<typename U = T>
requires (!concepts::RemoveCVRefSameAs<U, RebindableBox> && !detail::IsRebindableBox<U> && concepts::ConstructibleFrom<Storage, U>)
constexpr auto operator= (U &&value) -> RebindableBox &
 
constexpr auto value () &-> T &
 
constexpr auto value () const &-> T const &
 
constexpr auto value () &&-> T &&
 
constexpr auto value () const &&-> T const &&
 
template<typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>)
constexpr auto emplace (Args &&... args) -> T &
 
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<T, std::initializer_list<U>, Args...>)
constexpr auto emplace (std::initializer_list< U > list, Args &&... args) -> T &
 

Constructor & Destructor Documentation

◆ RebindableBox() [1/7]

template<typename T>
di::util::RebindableBox< T >::RebindableBox ( )
constexprdefault

◆ RebindableBox() [2/7]

template<typename T>
di::util::RebindableBox< T >::RebindableBox ( RebindableBox< T > const & )
constexprdelete

◆ RebindableBox() [3/7]

template<typename T>
di::util::RebindableBox< T >::RebindableBox ( RebindableBox< T > const & )
constexprdefault

◆ RebindableBox() [4/7]

template<typename T>
di::util::RebindableBox< T >::RebindableBox ( RebindableBox< T > && )
constexprdefault

◆ RebindableBox() [5/7]

template<typename T>
template<typename U>
requires (!concepts::RemoveCVRefSameAs<U, RebindableBox> && concepts::ConstructibleFrom<Storage, U> && !concepts::RemoveCVRefSameAs<RebindableBox, U> && !concepts::RemoveCVRefSameAs<types::InPlace, U>)
di::util::RebindableBox< T >::RebindableBox ( U && value)
inlineexplicitconstexpr

◆ RebindableBox() [6/7]

template<typename T>
template<typename... Args>
requires (concepts::ConstructibleFrom<Storage, Args...>)
di::util::RebindableBox< T >::RebindableBox ( types::InPlace ,
Args &&... args )
inlineconstexpr

◆ RebindableBox() [7/7]

template<typename T>
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<Storage, std::initializer_list<U>, Args...>)
di::util::RebindableBox< T >::RebindableBox ( types::InPlace ,
std::initializer_list< U > list,
Args &&... args )
inlineconstexpr

◆ ~RebindableBox()

template<typename T>
di::util::RebindableBox< T >::~RebindableBox ( )
constexprdefault

Member Function Documentation

◆ emplace() [1/2]

template<typename T>
template<typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>)
auto di::util::RebindableBox< T >::emplace ( Args &&... args) -> T&
inlineconstexpr

◆ emplace() [2/2]

template<typename T>
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<T, std::initializer_list<U>, Args...>)
auto di::util::RebindableBox< T >::emplace ( std::initializer_list< U > list,
Args &&... args ) -> T&
inlineconstexpr

◆ explicit() [1/2]

template<typename T>
template<typename U>
requires (!concepts::RemoveCVRefSameAs<T, U> && concepts::ConstructibleFrom<Storage, U const&> && detail::RebindableBoxCanConvertConstructor<T, U>)
di::util::RebindableBox< T >::explicit ( !concepts::ConvertibleTo< U const &, Storage > ) const &
inlineconstexpr

◆ explicit() [2/2]

template<typename T>
template<typename U>
requires (!concepts::RemoveCVRefSameAs<T, U> && concepts::ConstructibleFrom<Storage, U> && detail::RebindableBoxCanConvertConstructor<T, U>)
di::util::RebindableBox< T >::explicit ( !concepts::ConvertibleTo< U, Storage > ) &&
inlineconstexpr

◆ operator=() [1/7]

template<typename T>
auto di::util::RebindableBox< T >::operator= ( RebindableBox< T > && ) -> RebindableBox &=default
constexprdefault

◆ operator=() [2/7]

template<typename T>
auto di::util::RebindableBox< T >::operator= ( RebindableBox< T > const & ) -> RebindableBox &=default
constexprdefault

◆ operator=() [3/7]

template<typename T>
auto di::util::RebindableBox< T >::operator= ( RebindableBox< T > const & other) -> RebindableBox& requires(!concepts::TriviallyCopyAssignable<Storage> && concepts::CopyConstructible<Storage>)
inlineconstexpr

◆ operator=() [4/7]

template<typename T>
auto di::util::RebindableBox< T >::operator= ( RebindableBox< T > const & other) -> RebindableBox& requires(!concepts::TriviallyMoveAssignable<Storage> && concepts::MoveConstructible<Storage>)
inlineconstexpr

◆ operator=() [5/7]

template<typename T>
template<typename U>
requires (concepts::ConstructibleFrom<Storage, U>)
auto di::util::RebindableBox< T >::operator= ( RebindableBox< U > && other) -> RebindableBox&
inlineconstexpr

◆ operator=() [6/7]

template<typename T>
template<typename U>
requires (concepts::ConstructibleFrom<Storage, U const&>)
auto di::util::RebindableBox< T >::operator= ( RebindableBox< U > const & other) -> RebindableBox&
inlineconstexpr

◆ operator=() [7/7]

template<typename T>
template<typename U = T>
requires (!concepts::RemoveCVRefSameAs<U, RebindableBox> && !detail::IsRebindableBox<U> && concepts::ConstructibleFrom<Storage, U>)
auto di::util::RebindableBox< T >::operator= ( U && value) -> RebindableBox&
inlineconstexpr

◆ value() [1/4]

template<typename T>
auto di::util::RebindableBox< T >::value ( ) && -> T&&
inlineconstexpr

◆ value() [2/4]

template<typename T>
auto di::util::RebindableBox< T >::value ( ) & -> T&
inlineconstexpr

◆ value() [3/4]

template<typename T>
auto di::util::RebindableBox< T >::value ( ) const && -> T const&&
inlineconstexpr

◆ value() [4/4]

template<typename T>
auto di::util::RebindableBox< T >::value ( ) const & -> T const&
inlineconstexpr

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