|
| Type ()=default |
|
| Type (Type const &)=default |
|
constexpr | Type (Type const &other) |
|
| Type (Type &&)=default |
|
constexpr | Type (Type &&other) |
|
template<typename U, typename VU = RemoveConstructQualifiers<U>>
requires (!concepts::DerivedFrom<meta::RemoveCVRef<U>, Type> && !concepts::InstanceOf<meta::RemoveCVRef<U>, InPlaceType> && concepts::ConstructibleFrom<VU, U &&> && concepts::AnyStorableInfallibly<VU, Storage> && concepts::Impl<VU, Interface>) |
constexpr | Type (U &&value) |
|
template<typename T, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorableInfallibly<VT, Storage> && concepts::ConstructibleFrom<VT, Args...>) |
constexpr | Type (InPlaceType< T >, Args &&... args) |
|
template<typename T, typename U, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorableInfallibly<VT, Storage> && concepts::ConstructibleFrom<VT, std::initializer_list<U>&, Args...>) |
constexpr | Type (InPlaceType< T >, std::initializer_list< U > list, Args &&... args) |
|
| ~Type ()=default |
|
constexpr | ~Type () |
|
auto | operator= (Type const &) -> Type &requires(is_trivially_copyable)=default |
|
auto | operator= (Type &&) -> Type &requires(is_trivially_moveable)=default |
|
constexpr auto | operator= (Type const &other) -> Type &requires(is_copyable) |
|
constexpr auto | operator= (Type &&other) -> Type &requires(is_moveable) |
|
template<typename U, concepts::Impl< Interface > VU = RemoveConstructQualifiers<U>>
requires (!concepts::DerivedFrom<meta::RemoveCVRef<U>, Type> && !concepts::InstanceOf<meta::RemoveCVRef<U>, InPlaceType> && concepts::AnyStorableInfallibly<VU, Storage> && concepts::ConstructibleFrom<VU, U>) |
constexpr auto | operator= (U &&value) -> Type & |
|
constexpr auto | has_value () const -> bool requires(!is_reference) |
|
template<typename U, concepts::Impl< Interface > VU = RemoveConstructQualifiers<U>>
requires (!concepts::RemoveCVRefSameAs<U, Type> && !concepts::InstanceOf<meta::RemoveCVRef<U>, InPlaceType> && concepts::AnyStorable<VU, Storage> && concepts::ConstructibleFrom<VU, U>) |
constexpr auto | emplace (U &&value) |
|
template<typename T, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorable<VT, Storage> && concepts::ConstructibleFrom<VT, Args...>) |
constexpr auto | emplace (InPlaceType< T >, Args &&... args) |
|
template<typename T, typename U, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorable<VT, Storage> && concepts::ConstructibleFrom<VT, std::initializer_list<U>&, Args...>) |
constexpr auto | emplace (InPlaceType< T >, std::initializer_list< U > list, Args &&... args) |
|
constexpr void | reset () |
|
|
template<typename U, typename VU = RemoveConstructQualifiers<U>>
requires (!concepts::RemoveCVRefSameAs<U, Type> && !concepts::InstanceOf<meta::RemoveCVRef<U>, InPlaceType> && concepts::AnyStorable<VU, Storage> && concepts::ConstructibleFrom<VU, U>) |
static constexpr auto | create (U &&value) |
|
template<typename T, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorable<VT, Storage> && concepts::ConstructibleFrom<VT, Args...>) |
static constexpr auto | create (InPlaceType< T >, Args &&... args) |
|
template<typename T, typename U, typename... Args, concepts::Impl< Interface > VT = RemoveConstructQualifiers<T>>
requires (concepts::AnyStorable<VT, Storage> && concepts::ConstructibleFrom<VT, std::initializer_list<U>&, Args...>) |
static constexpr auto | create (InPlaceType< T >, std::initializer_list< U > list, Args &&... args) |
|