#include <Rosetta/Commons/Utils.hpp>
Public Types | |
using | value_type = T |
using | size_type = std::size_t |
using | reference = T & |
using | const_reference = const T & |
using | pointer = T * |
using | const_pointer = const T * |
using | iterator = pointer |
using | const_iterator = const_pointer |
Public Member Functions | |
SizedPtr () | |
Default constructor. More... | |
SizedPtr (std::size_t size) | |
SizedPtr (T *ptr, std::size_t size) | |
~SizedPtr () | |
Default destructor. More... | |
SizedPtr (const SizedPtr &ptr) | |
Copy constructor, deep copying buffer. More... | |
SizedPtr (SizedPtr &&ptr) noexcept | |
Move constructor. More... | |
SizedPtr & | operator= (const SizedPtr &ptr) |
Copy assignment operator, deep copying buffer. More... | |
SizedPtr & | operator= (SizedPtr &&ptr) noexcept |
Move assignment operator. More... | |
void | reset () noexcept |
Resets buffer. More... | |
void | reset (T *other, std::size_t size) noexcept |
operator bool () | |
Queries that object has buffer. More... | |
T * | get () |
const T * | get () const |
std::size_t | size () const |
T & | operator* () |
const T & | operator* () const |
T & | operator[] (std::size_t idx) |
const T & | operator[] (std::size_t idx) const |
bool | operator== (const SizedPtr &other) const |
bool | operator!= (const SizedPtr &other) const |
bool | operator== (std::nullptr_t) const |
bool | operator!= (std::nullptr_t) const |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
iterator | end () |
const_iterator | end () const |
const_iterator | cend () const |
Detailed Description
template<typename T>
class SizedPtr< T >
SizedPtr class.
This class is unique_ptr like pointer wrapper. For std::any, base class required copy constructible, it supports both deep copy and move operations.
Member Typedef Documentation
◆ const_iterator
using SizedPtr< T >::const_iterator = const_pointer |
◆ const_pointer
using SizedPtr< T >::const_pointer = const T* |
◆ const_reference
using SizedPtr< T >::const_reference = const T& |
◆ iterator
◆ pointer
◆ reference
◆ size_type
◆ value_type
using SizedPtr< T >::value_type = T |
Constructor & Destructor Documentation
◆ SizedPtr() [1/5]
◆ SizedPtr() [2/5]
Constructs sized ptr with given /p size.
- Parameters
-
size The size of buffer.
◆ SizedPtr() [3/5]
Constructs sized ptr with given ptr
and size
.
- Parameters
-
ptr The pointer that sized ptr managing. size The size of buffer.
◆ ~SizedPtr()
◆ SizedPtr() [4/5]
Copy constructor, deep copying buffer.
◆ SizedPtr() [5/5]
Move constructor.
Member Function Documentation
◆ begin() [1/2]
Gets begining iterator of the buffer.
- Returns
- The begining iterator.
◆ begin() [2/2]
|
inline |
Gets constant begining iterator of the buffer.
- Returns
- The constant begining iterator.
◆ cbegin()
|
inline |
Gets constant begining iterator of the buffer.
- Returns
- The constant begining iterator.
◆ cend()
|
inline |
Gets ending iterator of the buffer.
- Returns
- The ending iterator.
◆ end() [1/2]
Gets ending iterator of the buffer.
- Returns
- The ending iterator.
◆ end() [2/2]
|
inline |
Gets ending iterator of the buffer.
- Returns
- The ending iterator.
◆ get() [1/2]
|
inline |
Gets buffer pointer.
- Returns
- The pointer of buffer.
◆ get() [2/2]
|
inline |
Gets buffer pointer.
- Returns
- The pointer of buffer.
◆ operator bool()
|
inline |
Queries that object has buffer.
◆ operator!=() [1/2]
Check the inequality of two buffers.
- Parameters
-
other Comparable object.
- Returns
- Inequality about two buffers.
◆ operator!=() [2/2]
|
inline |
Check if the buffer is not empty.
- Returns
- true if buffer is not empty, false otherwise.
◆ operator*() [1/2]
|
inline |
Gets the first element of buffer.
- Returns
- The first element of buffer.
◆ operator*() [2/2]
|
inline |
Gets the first element of buffer.
- Returns
- The first element of buffer.
◆ operator=() [1/2]
Copy assignment operator, deep copying buffer.
◆ operator=() [2/2]
Move assignment operator.
◆ operator==() [1/2]
Check the equality of two buffers.
- Parameters
-
other Comparable object.
- Returns
- Equality about two buffers.
◆ operator==() [2/2]
|
inline |
Check if the buffer is empty.
- Returns
- true if buffer is empty, false otherwise.
◆ operator[]() [1/2]
|
inline |
Gets the element with given idx
from buffer.
- Parameters
-
idx The index of buffer.
- Returns
- The element of buffer at idx.
◆ operator[]() [2/2]
|
inline |
Gets the element with given idx
from buffer.
- Parameters
-
idx The index of buffer.
- Returns
- The element of buffer at idx.
◆ reset() [1/2]
|
inlinenoexcept |
Resets buffer.
◆ reset() [2/2]
|
inlinenoexcept |
Resets buffer with given other
and size
.
- Parameters
-
other The pointer that sized ptr managing. size The size of buffer.
◆ size()
|
inline |
Gets size of buffer.
- Returns
- The size of buffer.
The documentation for this class was generated from the following file:
- Rosetta/Commons/Utils.hpp