|
|
| Embedded () noexcept(std::is_nothrow_constructible_v< Object >) |
| Default Constructor. Constructs a default-constructed object.
|
|
| Embedded (const Embedded &rhs) noexcept(std::is_nothrow_constructible_v< Object, const Object & >) |
| Copy Constructor.
|
|
| Embedded (Embedded &&rhs) noexcept(std::is_nothrow_constructible_v< Object, Object && >) |
| Move Constructor.
|
|
template<typename RelatedObject >
requires std::is_constructible_v<Object, const RelatedObject &> && (!std::is_same_v<RelatedObject, Object>) |
| Embedded (const Embedded< RelatedObject > &relatedObject) noexcept(std::is_nothrow_constructible_v< Object, const RelatedObject & >) |
| Copy constructor for a related embedded object.
|
|
template<typename RelatedObject >
requires std::is_constructible_v<Object, RelatedObject &&> && (!std::is_same_v<RelatedObject, Object>) |
| Embedded (Embedded< RelatedObject > &&relatedObject) noexcept(std::is_nothrow_constructible_v< Object, RelatedObject && >) |
| Move constructor for a related embedded object.
|
|
| Embedded (const Object &object) noexcept(std::is_nothrow_constructible_v< Object >) |
| Constructor that copies an existing object.
|
|
| Embedded (Object &&object) noexcept(std::is_nothrow_constructible_v< Object, Object && >) |
| Constructor that moves an existing object.
|
|
template<typename Initializer >
requires std::is_constructible_v<Object, Initializer &&> && (!std::is_same_v<std::remove_cvref_t<Initializer>, std::in_place_t>) && (!std::is_same_v<std::remove_cvref_t<Initializer>, Embedded<Object>>) |
| Embedded (Initializer &&initializer) noexcept(std::is_nothrow_constructible_v< Object, Initializer && >) |
| Constructor that constructs an object from an initializer.
|
|
template<typename Argument1 , typename Argument2 , typename... MoreArguments>
requires std::is_constructible_v<Object, Argument1 &&, Argument2 &&, MoreArguments &&...> && (!std::is_same_v<std::remove_cvref_t<Argument1>, std::in_place_t>) |
| Embedded (Argument1 &&argument1, Argument2 &&argument2, MoreArguments &&... moreArguments) noexcept(std::is_nothrow_constructible_v< Object, Argument1 &&, Argument2 &&, MoreArguments &&... >) |
| Constructor that constructs an object from two or more arguments.
|
|
template<typename... Arguments>
requires std::is_constructible_v<Object, Arguments...> |
| Embedded (std::in_place_t, Arguments &&... arguments) noexcept(std::is_nothrow_constructible_v< Object, Arguments &&... >) |
| In-place constructor.
|
|
|
auto | operator= (const Embedded &rhs) noexcept(std::is_nothrow_assignable_v< Object, const Object & >) -> Embedded & |
| Assignment operator.
|
|
auto | operator= (Embedded &&rhs) noexcept(std::is_nothrow_assignable_v< Object, const Object & >) -> Embedded & |
| Move assignment operator.
|
|
template<typename RelatedObject >
requires std::is_assignable_v<Object, const RelatedObject &> && (!std::is_same_v<RelatedObject, Object>) |
auto | operator= (const Embedded< RelatedObject > &relatedObject) noexcept(std::is_nothrow_constructible_v< Object, const RelatedObject & >) -> Embedded & |
| Assignment operator for a related embedded object.
|
|
template<typename RelatedObject >
requires std::is_assignable_v<Object, RelatedObject &&> && (!std::is_same_v<RelatedObject, Object>) |
auto | operator= (Embedded< RelatedObject > &&relatedObject) noexcept(std::is_nothrow_assignable_v< Object, RelatedObject && > &&std::is_nothrow_constructible_v< Object, RelatedObject && >) -> Embedded & |
| Move assignment operator for a related embedded object.
|
|
auto | operator= (const Object &rhs) noexcept(std::is_nothrow_assignable_v< Object, const Object & >) -> Embedded & |
| Assignment operator that copies an existing object.
|
|
auto | operator= (Object &&rhs) noexcept(std::is_nothrow_assignable_v< Object, const Object & >) -> Embedded & |
| Assignment operator that moves an existing object.
|
|
template<typename Value >
requires std::is_assignable_v<Object, Value &&> && (!std::is_same_v<std::remove_cvref_t<Value>, Embedded<Object>>) |
auto | operator= (Value &&value) noexcept(std::is_nothrow_assignable_v< Object, Value && >) -> Embedded & |
| Assignment operator for an arbitrary value.
|
|
|
constexpr auto | get () const noexcept -> const Object & |
| Gets the object.
|
|
constexpr auto | get () noexcept -> Object & |
| Gets the object.
|
|
constexpr auto | operator* () const noexcept -> const Object & |
| Indirection operator.
|
|
constexpr auto | operator* () noexcept -> Object & |
| Indirection operator.
|
|
constexpr auto | operator-> () const noexcept -> const Object * |
| Member access operator.
|
|
constexpr auto | operator-> () noexcept -> Object * |
| Member access operator.
|
|
template<typename RelatedObject >
requires std::is_swappable_with_v<Object, RelatedObject> |
auto | swap (Embedded< RelatedObject > &other) noexcept(std::is_nothrow_swappable_with_v< Object, RelatedObject >) -> void |
| Swaps two empedded objects.
|
|
template<typename Object>
class xentara::utils::memory::Embedded< Object >
A container that contains exactly one object.