|
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 & |
|