|
Bifrost SDK
Bifrost SDK documentation
|
Smart pointers used to allow custom user classes (opaque classes) to be used within Amino graphs. They can also be used to implement persistent copy-on-write data structures and types. More...
Go to the source code of this file.
Classes | |
| struct | Amino::PointeeTraits |
| Traits about the to-be-pointee of an Amino::Ptr<T> or Amino::MutablePtr<T> class. More... | |
| struct | Amino::PointeeTraits::is_compliant_base< T > |
| Whether a Ptr<T> or MutablePtr<T> can be instantiated. More... | |
| struct | Amino::PointeeTraits::is_compliant< T > |
| Whether the class of type T can be stored in an Amino::Ptr<T> or an Amino::MutablePtr<T>. More... | |
| struct | Amino::PtrDefaultFlag |
| Flag that may be passed when creating a Ptr, to make it contain a default value as its pointee. More... | |
| class | Amino::Ptr< T > |
| Smart pointers allowing custom user classes (opaque classes) to be used within Amino graphs. More... | |
| class | Amino::MutablePtr< T > |
| Transient version of Amino::Ptr<T> which allows mutable access to the pointee. More... | |
| struct | Amino::PtrGuardUniqueFlag |
| Flag that may be passed when creating a PtrGuard. More... | |
| class | Amino::PtrGuard< T > |
| Helper guard to allow mutation on a pointee for the lifescope of the PtrGuard<T> but then reassigning to the source Ptr upon its destruction. More... | |
| struct | std::hash< Amino::Ptr< T > > |
| Hash functor for Amino::Ptr. More... | |
Namespaces | |
| namespace | Amino |
| namespace | std |
Functions | |
| template<typename T > | |
| Amino::Ptr (MutablePtr< T >) -> Ptr< T > | |
| Deduction guide for Ptr. More... | |
| template<class T > | |
| void | Amino::swap (Ptr< T > &lhs, Ptr< T > &rhs) noexcept |
| Swap two pointers. More... | |
| template<class T > | |
| void | Amino::swap (MutablePtr< T > &lhs, MutablePtr< T > &rhs) noexcept |
| Swap two pointers. More... | |
| template<class T , class... Args> | |
| Ptr< T > | Amino::newClassPtr (Args &&... args) |
| Creates a Ptr holding a new T constructed from the given arguments. More... | |
| template<class T , class E > | |
| Ptr< T > | Amino::newClassPtr (std::initializer_list< E > list) |
| Creates a Ptr holding a new T constructed from the given initializer_list. More... | |
| template<class T , class... Args> | |
| MutablePtr< T > | Amino::newMutablePtr (Args &&... args) |
| Creates a MutablePtr holding a new T constructed from the given arguments. More... | |
| template<class T , class E > | |
| MutablePtr< T > | Amino::newMutablePtr (std::initializer_list< E > list) |
| Creates a MutablePtr holding a new T constructed from the given initializer_list. More... | |
| template<typename T > | |
| Amino::PtrGuard (Ptr< T > &) -> PtrGuard< T > | |
| Deduction guide for PtrGuard. More... | |
| template<typename T > | |
| Amino::PtrGuard (Ptr< T > &, PtrGuardUniqueFlag) -> PtrGuard< T > | |
| Deduction guide for PtrGuard. More... | |
Equality comparison | |
| template<class T , class U > | |
| bool | Amino::operator== (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator== (const Ptr< T > &x, std::nullptr_t) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator== (std::nullptr_t, const Ptr< T > &y) noexcept |
| Return true if pointers are equal. More... | |
| template<class T , class U > | |
| bool | Amino::operator!= (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Return true if pointers are not equal. More... | |
| template<class T > | |
| bool | Amino::operator!= (const Ptr< T > &x, std::nullptr_t) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator!= (std::nullptr_t, const Ptr< T > &y) noexcept |
| Return true if pointers are equal. More... | |
Ordering comparison | |
| template<class T , class U > | |
| bool | Amino::operator< (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator< (const Ptr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator< (std::nullptr_t, const Ptr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator> (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator> (const Ptr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator> (std::nullptr_t, const Ptr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator<= (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator<= (const Ptr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator<= (std::nullptr_t, const Ptr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator>= (Ptr< T > const &x, Ptr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator>= (const Ptr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator>= (std::nullptr_t, const Ptr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator< (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator< (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator< (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator> (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator> (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator> (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator<= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator<= (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator<= (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Compares the pointer values. More... | |
| template<class T , class U > | |
| bool | Amino::operator>= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator>= (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Compares the pointer values. More... | |
| template<class T > | |
| bool | Amino::operator>= (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Compares the pointer values. More... | |
Comparison operator with nullptr. | |
| template<class T , class U > | |
| bool | Amino::operator== (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator== (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator== (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Return true if pointers are equal. More... | |
| template<class T , class U > | |
| bool | Amino::operator!= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept |
| Return true if pointers are not equal. More... | |
| template<class T > | |
| bool | Amino::operator!= (const MutablePtr< T > &x, std::nullptr_t) noexcept |
| Return true if pointers are equal. More... | |
| template<class T > | |
| bool | Amino::operator!= (std::nullptr_t, const MutablePtr< T > &y) noexcept |
| Return true if pointers are equal. More... | |
Pointer casts | |
| template<class T , class U > | |
| Ptr< T > | Amino::static_pointer_cast (Ptr< U > const &ptr) noexcept |
| Static pointer cast. More... | |
| template<class T , class U > | |
| Ptr< T > | Amino::static_pointer_cast (Ptr< U > &&ptr) noexcept |
| Static pointer cast. More... | |
| template<class T , class U > | |
| Ptr< T > | Amino::dynamic_pointer_cast (Ptr< U > const &ptr) noexcept |
| Dynamic pointer cast. More... | |
| template<class T , class U > | |
| Ptr< T > | Amino::dynamic_pointer_cast (Ptr< U > &&ptr) noexcept |
| Dynamic pointer cast. More... | |
| template<typename T > | |
| std::enable_if_t< PtrInternal::DefaultPtrTraits::has_default_class< T >::value, Ptr< T > > | Amino::makeDefaultPtr () |
| Creates a Ptr holding the default value for T. More... | |
| template<typename T > | |
| std::enable_if_t< PtrInternal::DefaultPtrTraits::is_array< T >::value, Ptr< T > > | Amino::makeDefaultPtr () |
| Creates a Ptr holding the default value for T. More... | |
| template<typename T > | |
| std::enable_if_t< !PtrInternal::DefaultPtrTraits::is_defaultable< T >::value, Ptr< T > > | Amino::makeDefaultPtr () |
| Creates a Ptr holding the default value for T. More... | |
| template<typename T > | |
| PtrGuard< T > | Amino::createPtrGuard (Ptr< T > &src) |
| Create a PtrGuard for the given Ptr. More... | |
| template<typename T1 , typename T2 > | |
| PtrGuard< T1 > | Amino::createPtrGuard (Ptr< T2 > &src) |
| Create a PtrGuard for the given Ptr. More... | |
| template<typename T > | |
| PtrGuard< T > | Amino::createPtrGuard (Ptr< T > &src, PtrGuardUniqueFlag) |
| Create a PtrGuard for the given Ptr. More... | |
Smart pointers used to allow custom user classes (opaque classes) to be used within Amino graphs. They can also be used to implement persistent copy-on-write data structures and types.
Definition in file Ptr.h.