|
| | OffsetPtr () noexcept=default |
| |
| | OffsetPtr (const pointer ptr) noexcept |
| | Creates a new OffsetPtr from a raw pointer.
|
| |
template<typename T >
requires std::is_convertible_v<T*, PointedType*> |
| | OffsetPtr (T ptr) noexcept |
| | Creates a new OffsetPtr from a raw pointer.
|
| |
| | OffsetPtr (const OffsetPtr &ptr) noexcept |
| | Creates a new OffsetPtr by copying another.
|
| |
template<typename T2 >
requires std::is_convertible_v<T2*, PointedType*> |
| | OffsetPtr (const OffsetPtr< T2, DifferenceType, OffsetType, OffsetAlignment > &ptr) noexcept |
| | Creates a new OffsetPtr by copying another.
|
| |
| OffsetPtr & | operator= (const pointer from) noexcept |
| | Assigns the OffsetPtr from a raw pointer.
|
| |
| OffsetPtr & | operator= (const OffsetPtr &ptr) noexcept |
| | Assigns the OffsetPtr by copying another.
|
| |
template<class T2 >
requires std::is_convertible_v<T2*, PointedType*> |
| OffsetPtr & | operator= (const OffsetPtr< T2, DifferenceType, OffsetType, OffsetAlignment > &ptr) noexcept |
| | Assigns the OffsetPtr by copying another.
|
| |
| | ~OffsetPtr ()=default |
| | Default destructor.
|
| |
| pointer | get () const noexcept |
| | Obtains raw pointer from offset.
|
| |
| offset_type | getOffset () const noexcept |
| | Obtains the internal offset of the pointer.
|
| |
| pointer | operator-> () const noexcept |
| | Implements the pointer-like -> operator. It can return 0 pointer.
|
| |
| reference | operator* () const noexcept |
| | Implements the dereferencing operator, if it is nullptr, behavior is undefined.
|
| |
| reference | operator[] (difference_type idx) const noexcept |
| | Implements the indexing operator.
|
| |
| void | reset () noexcept |
| | Resets the pointer and sets it to nullptr.
|
| |
| OffsetPtr & | operator+= (difference_type offset) noexcept |
| | Increments the pointer by the given offset.
|
| |
| OffsetPtr & | operator-= (difference_type offset) noexcept |
| | Decrements the pointer by the given offset.
|
| |
| OffsetPtr & | operator++ (void) noexcept |
| | Prefix increment operator. Increments the pointer by 1.
|
| |
| OffsetPtr | operator++ (int) noexcept |
| | Postfix increment operator. Increments the pointer by 1.
|
| |
| OffsetPtr & | operator-- (void) noexcept |
| | Prefix increment operator. Decrements the pointer by 1.
|
| |
| OffsetPtr | operator-- (int) noexcept |
| | Postfix increment operator. Decrements the pointer by 1.
|
| |
| | operator bool () const noexcept |
| | Checks if the pointer is nullptr.
|
| |
| bool | operator! () const noexcept |
| | Checks if the pointer is nullptr.
|
| |
|
| template<class T2 , class P2 , class O2 , std::size_t A2> |
| | OffsetPtr (const OffsetPtr< T2, P2, O2, A2 > &r, static_cast_tag) noexcept |
| | Constructor to emulate static_cast operator.
|
| |
| template<class T2 , class P2 , class O2 , std::size_t A2> |
| | OffsetPtr (const OffsetPtr< T2, P2, O2, A2 > &r, const_cast_tag) noexcept |
| | Constructor to emulate const_cast operator.
|
| |
| template<class T2 , class P2 , class O2 , std::size_t A2> |
| | OffsetPtr (const OffsetPtr< T2, P2, O2, A2 > &r, dynamic_cast_tag) noexcept |
| | Constructor to emulate dynamic_cast operator.
|
| |
| template<class T2 , class P2 , class O2 , std::size_t A2> |
| | OffsetPtr (const OffsetPtr< T2, P2, O2, A2 > &r, reinterpret_cast_tag) noexcept |
| | Constructor to emulate reinterpret_cast operator.
|
| |
|
| template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2> |
| OffsetPtr< T1, P1, O1, A1 > | static_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept |
| | Simulation of static_cast between pointers.
|
| |
| template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2> |
| OffsetPtr< T1, P1, O1, A1 > | const_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept |
| | Simulation of const_cast between pointers.
|
| |
| template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2> |
| OffsetPtr< T1, P1, O1, A1 > | dynamic_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept |
| | Simulation of dynamic_cast between pointers.
|
| |
| template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2> |
| OffsetPtr< T1, P1, O1, A1 > | reinterpret_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept |
| | Simulation of reinterpret_cast between pointers.
|
| |
| OffsetPtr | operator+ (difference_type diff, OffsetPtr right) noexcept |
| |
| OffsetPtr | operator+ (OffsetPtr left, difference_type diff) noexcept |
| |
| OffsetPtr | operator- (OffsetPtr left, difference_type diff) noexcept |
| |
| OffsetPtr | operator- (difference_type diff, OffsetPtr right) noexcept |
| |
| difference_type | operator- (const OffsetPtr &pt, const OffsetPtr &pt2) noexcept |
| |
| bool | operator== (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| |
| bool | operator!= (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| | Checks if two pointers point to the same object.
|
| |
| bool | operator< (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator<.
|
| |
| bool | operator<= (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator<=.
|
| |
| bool | operator> (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator>.
|
| |
| bool | operator>= (const OffsetPtr &pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator>=.
|
| |
| bool | operator== (pointer pt1, const OffsetPtr &pt2) noexcept |
| |
| bool | operator!= (pointer pt1, const OffsetPtr &pt2) noexcept |
| | Checks if two pointers point to the same object.
|
| |
| bool | operator< (pointer pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator<.
|
| |
| bool | operator<= (pointer pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator<=.
|
| |
| bool | operator> (pointer pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator>.
|
| |
| bool | operator>= (pointer pt1, const OffsetPtr &pt2) noexcept |
| | Compares two pointers using operator>=.
|
| |
| bool | operator== (const OffsetPtr &pt1, pointer pt2) noexcept |
| |
| bool | operator!= (const OffsetPtr &pt1, pointer pt2) noexcept |
| | Checks if two pointers point to the same object.
|
| |
| bool | operator< (const OffsetPtr &pt1, pointer pt2) noexcept |
| | Compares two pointers using operator<.
|
| |
| bool | operator<= (const OffsetPtr &pt1, pointer pt2) noexcept |
| | Compares two pointers using operator<=.
|
| |
| bool | operator> (const OffsetPtr &pt1, pointer pt2) noexcept |
| | Compares two pointers using operator>.
|
| |
| bool | operator>= (const OffsetPtr &pt1, pointer pt2) noexcept |
| | Compares two pointers using operator>=.
|
| |
| void | swap (OffsetPtr &left, OffsetPtr &right) noexcept |
| | Swaps left and right pointers.
|
| |
template<
typename PointedType,
class DifferenceType = std::ptrdiff_t,
class OffsetType = std::intptr_t, std::size_t OffsetAlignment = alignof(OffsetType)>
class CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >
A special pointer that stores the pointer as an offset of the pointee to the OffsetPtr instance itself.
This can be used to store a pointer to an object in shared-memory or memory-mapped objects that are meant to be stored.