|
xentara-workbench-plugin v1.0.1
The Xentara Workbench Plugin Framework
|
A pointer holding a sub element. More...
#include <xentara/workbench/skill/SubElementPointer.hpp>
Inheritance diagram for xentara::workbench::skill::SubElementPointer< Element >:Public Types | |
| using | pointer = Element * |
| The pointer type. | |
| using | element_type = Element |
| The element type. | |
Public Member Functions | |
Constructors | |
| SubElementPointer () noexcept=default | |
| Default constructor. | |
| SubElementPointer (std::nullptr_t) noexcept | |
| Constructor for a null pointer. | |
| SubElementPointer (pointer rawPointer) noexcept | |
| Constructor that takes ownership of a raw pointer. | |
| SubElementPointer (const SubElementPointer &other) | |
| Copy constructor. | |
| SubElementPointer (SubElementPointer &&other) noexcept | |
| Move constructor. | |
| SubElementPointer (std::unique_ptr< Element > &&pointer) noexcept | |
| Constructor that takes ownership from a unique_ptr. | |
| template<typename... Arguments> | |
| SubElementPointer (std::in_place_t, Arguments &&...arguments) | |
| In-place constructor. | |
| template<typename InitializerListElement , typename... Arguments> | |
| SubElementPointer (std::in_place_t, std::initializer_list< InitializerListElement > initializerList, Arguments &&...arguments) | |
| In-place constructor using an initializer list. | |
| template<typename NonEligibleType > | |
| SubElementPointer (std::unique_ptr< NonEligibleType > &&)=delete | |
| Do not accept unique pointers to subclasses. | |
Operators | |
| auto | operator= (std::nullptr_t) noexcept -> SubElementPointer & |
| Assignment operator for a null pointer. | |
| auto | operator= (const SubElementPointer &rhs) -> SubElementPointer & |
| Assignment operator. | |
| auto | operator= (SubElementPointer &&rhs) noexcept -> SubElementPointer & |
| Move assignment operator. | |
| auto | operator= (std::unique_ptr< Element > &&rhs) noexcept -> SubElementPointer & |
| Assignment operator that takes ownership from a unique_ptr. | |
| template<typename NonEligibleType > | |
| auto | operator= (std::unique_ptr< NonEligibleType > &&) -> SubElementPointer &=delete |
| Do not accept unique pointers to subclasses. | |
| operator std::unique_ptr< Element > () &&noexcept | |
| Conversion to a unique_ptr. | |
| operator bool () const noexcept | |
| Checks whether the pointer has a managed object. | |
Modifiers | |
| auto | release () noexcept -> pointer |
| Gives up ownership of the managed object and returns it. | |
| auto | reset (pointer rawPointer=pointer()) noexcept -> void |
| Resets the pointer to a null pointer. | |
| template<typename NonEligibleType > | |
| auto | reset (NonEligibleType *) noexcept -> void=delete |
| Do not accept raw pointers to subclasses. | |
| auto | swap (SubElementPointer &other) noexcept -> void |
| Swaps two pointers. | |
| template<typename... Arguments> | |
| auto | emplace (Arguments &&...arguments) -> Element & |
| Emplaces an object. | |
| template<typename InitializerListElement , typename... Arguments> | |
| auto | emplace (std::in_place_t, std::initializer_list< InitializerListElement > initializerList, Arguments &&...arguments) -> Element & |
| Emplaces an object using an initializer list. | |
Accessors | |
| auto | get () const noexcept -> pointer |
| Gets a raw pointer to the object. | |
| auto | operator* () const noexcept -> std::add_lvalue_reference_t< Element > |
| Accesses the object. | |
| auto | operator-> () const noexcept -> pointer |
| Accesses a member of the managed object. | |
Static Public Member Functions | |
| template<typename RelatedElement > | |
| static auto | static_pointer_cast (std::unique_ptr< RelatedElement > &&pointer) noexcept -> SubElementPointer |
| Performs a static_cast on an std::unique_ptr. | |
A pointer holding a sub element.
This class is similar to an std::unique_ptr, but has a copy constructor and assignment operator that copy the managed object, if it is copy constructible.
| using xentara::workbench::skill::SubElementPointer< Element >::element_type = Element |
The element type.
| using xentara::workbench::skill::SubElementPointer< Element >::pointer = Element * |
The pointer type.
|
defaultnoexcept |
Default constructor.
Constructs a null pointer
|
noexcept |
Constructor for a null pointer.
|
explicitnoexcept |
Constructor that takes ownership of a raw pointer.
| rawPointer | The raw pointer. Can be a null pointer. |
| xentara::workbench::skill::SubElementPointer< Element >::SubElementPointer | ( | const SubElementPointer< Element > & | other | ) |
Copy constructor.
This constructor copies the managed object of the other pointer, if there is one.
|
noexcept |
Move constructor.
|
noexcept |
Constructor that takes ownership from a unique_ptr.
|
explicit |
In-place constructor.
|
explicit |
In-place constructor using an initializer list.
|
delete |
Do not accept unique pointers to subclasses.
| auto xentara::workbench::skill::SubElementPointer< Element >::emplace | ( | Arguments &&... | arguments | ) | -> Element & |
Emplaces an object.
| auto xentara::workbench::skill::SubElementPointer< Element >::emplace | ( | std::in_place_t | , |
| std::initializer_list< InitializerListElement > | initializerList, | ||
| Arguments &&... | arguments | ||
| ) | -> Element & |
Emplaces an object using an initializer list.
|
noexcept |
Gets a raw pointer to the object.
|
explicitnoexcept |
Checks whether the pointer has a managed object.
|
noexcept |
Conversion to a unique_ptr.
|
noexcept |
Accesses the object.
|
noexcept |
Accesses a member of the managed object.
| auto xentara::workbench::skill::SubElementPointer< Element >::operator= | ( | const SubElementPointer< Element > & | rhs | ) | -> SubElementPointer & |
Assignment operator.
This constructor copies the managed object of the other pointer, if there is one.
|
noexcept |
Assignment operator for a null pointer.
|
noexcept |
Assignment operator that takes ownership from a unique_ptr.
|
delete |
Do not accept unique pointers to subclasses.
|
noexcept |
Move assignment operator.
|
noexcept |
Gives up ownership of the managed object and returns it.
|
deletenoexcept |
Do not accept raw pointers to subclasses.
|
noexcept |
Resets the pointer to a null pointer.
|
staticnoexcept |
Performs a static_cast on an std::unique_ptr.
|
noexcept |
Swaps two pointers.