|
|
| array ()=default |
| | Defaulted constructor.
|
| |
|
| array (const array &)=default |
| | Defaulted copy constructor.
|
| |
| | array (array &&)=default |
| | Defaulted move constructor. More...
|
| |
| array & | operator= (const array &other) |
| | Copy assignment operator - perform assignment from other pmem::obj::array. More...
|
| |
| array & | operator= (array &&other) |
| | Move assignment operator - perform move assignment from other pmem::obj::array. More...
|
| |
| reference | at (size_type n) |
| | Access element at specific index and add it to a transaction. More...
|
| |
| const_reference | at (size_type n) const |
| | Access element at specific index. More...
|
| |
| const_reference | const_at (size_type n) const |
| | Access element at specific index. More...
|
| |
| reference | operator[] (size_type n) |
| | Access element at specific index and add it to a transaction. More...
|
| |
| const_reference | operator[] (size_type n) const |
| | Access element at specific index. More...
|
| |
| T * | data () |
| | Returns raw pointer to the underlying data and adds entire array to a transaction. More...
|
| |
|
const T * | data () const noexcept |
| | Returns const raw pointer to the underlying data.
|
| |
|
const T * | cdata () const noexcept |
| | Returns const raw pointer to the underlying data.
|
| |
| iterator | begin () |
| | Returns an iterator to the beginning. More...
|
| |
| iterator | end () |
| | Returns an iterator to the end. More...
|
| |
|
const_iterator | begin () const noexcept |
| | Returns const iterator to the beginning.
|
| |
|
const_iterator | cbegin () const noexcept |
| | Returns const iterator to the beginning.
|
| |
|
const_iterator | end () const noexcept |
| | Returns a const iterator to the end.
|
| |
|
const_iterator | cend () const noexcept |
| | Returns a const iterator to the end.
|
| |
| reverse_iterator | rbegin () |
| | Returns a reverse iterator to the beginning. More...
|
| |
| reverse_iterator | rend () |
| | Returns a reverse iterator to the end. More...
|
| |
|
const_reverse_iterator | rbegin () const noexcept |
| | Returns a const reverse iterator to the beginning.
|
| |
|
const_reverse_iterator | crbegin () const noexcept |
| | Returns a const reverse iterator to the beginning.
|
| |
|
const_reverse_iterator | rend () const noexcept |
| | Returns a const reverse iterator to the end.
|
| |
|
const_reverse_iterator | crend () const noexcept |
| | Returns a const reverse iterator to the beginning.
|
| |
| reference | front () |
| | Access the first element and add this element to a transaction. More...
|
| |
| reference | back () |
| | Access the last element and add this element to a transaction. More...
|
| |
|
const_reference | front () const |
| | Access the first element.
|
| |
|
const_reference | cfront () const |
| | Access the first element.
|
| |
|
const_reference | back () const |
| | Access the last element.
|
| |
|
const_reference | cback () const |
| | Access the last element.
|
| |
| slice< pointer > | range (size_type start, size_type n) |
| | Returns slice and snapshots requested range. More...
|
| |
| slice< range_snapshotting_iterator > | range (size_type start, size_type n, size_type snapshot_size) |
| | Returns slice. More...
|
| |
| slice< const_iterator > | range (size_type start, size_type n) const |
| | Returns const slice. More...
|
| |
| slice< const_iterator > | crange (size_type start, size_type n) const |
| | Returns const slice. More...
|
| |
|
constexpr size_type | size () const noexcept |
| | Returns size of the array.
|
| |
|
constexpr size_type | max_size () const noexcept |
| | Returns the maximum size of the array.
|
| |
|
constexpr bool | empty () const noexcept |
| | Checks whether array is empty.
|
| |
| void | fill (const_reference value) |
| | Fills array with specified value inside internal transaction. More...
|
| |
| template<std::size_t Size = N> |
| std::enable_if< Size !=0 >::type | swap (array &other) |
| | Swaps content with other array's content inside internal transaction. More...
|
| |
|
template<std::size_t Size = N> |
| std::enable_if< Size==0 >::type | swap (array &other) |
| | Swap for zero-sized array.
|
| |
|
(Note that these are not member functions.)
|
|
template<typename T , std::size_t N> |
| bool | operator== (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member equal operator.
|
| |
|
template<typename T , std::size_t N> |
| bool | operator!= (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member not-equal operator.
|
| |
|
template<typename T , std::size_t N> |
| bool | operator< (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member less than operator.
|
| |
|
template<typename T , std::size_t N> |
| bool | operator> (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member greater than operator.
|
| |
|
template<typename T , std::size_t N> |
| bool | operator>= (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member greater or equal operator.
|
| |
|
template<typename T , std::size_t N> |
| bool | operator<= (const array< T, N > &lhs, const array< T, N > &rhs) |
| | Non-member less or equal operator.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_iterator | cbegin (const pmem::obj::array< T, N > &a) |
| | Non-member cbegin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_iterator | cend (const pmem::obj::array< T, N > &a) |
| | Non-member cend.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_reverse_iterator | crbegin (const pmem::obj::array< T, N > &a) |
| | Non-member crbegin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_reverse_iterator | crend (const pmem::obj::array< T, N > &a) |
| | Non-member crend.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::iterator | begin (pmem::obj::array< T, N > &a) |
| | Non-member begin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_iterator | begin (const pmem::obj::array< T, N > &a) |
| | Non-member begin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::iterator | end (pmem::obj::array< T, N > &a) |
| | Non-member end.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_iterator | end (const pmem::obj::array< T, N > &a) |
| | Non-member end.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::reverse_iterator | rbegin (pmem::obj::array< T, N > &a) |
| | Non-member rbegin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_reverse_iterator | rbegin (const pmem::obj::array< T, N > &a) |
| | Non-member rbegin.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::reverse_iterator | rend (pmem::obj::array< T, N > &a) |
| | Non-member rend.
|
| |
|
template<typename T , std::size_t N> |
| pmem::obj::array< T, N >::const_reverse_iterator | rend (const pmem::obj::array< T, N > &a) |
| | Non-member rend.
|
| |
|
template<typename T , size_t N> |
| void | swap (pmem::obj::array< T, N > &lhs, pmem::obj::array< T, N > &rhs) |
| | Non-member swap function.
|
| |
|
template<size_t I, typename T , size_t N> |
| T & | get (pmem::obj::array< T, N > &a) |
| | Non-member get function.
|
| |
|
template<size_t I, typename T , size_t N> |
| T && | get (pmem::obj::array< T, N > &&a) |
| | Non-member get function.
|
| |
|
template<size_t I, typename T , size_t N> |
| const T & | get (const pmem::obj::array< T, N > &a) noexcept |
| | Non-member get function.
|
| |
|
template<size_t I, typename T , size_t N> |
| const T && | get (const pmem::obj::array< T, N > &&a) noexcept |
| | Non-member get function.
|
| |
template<typename T, std::size_t N>
struct pmem::obj::array< T, N >
Persistent container with std::array compatible interface.
pmem::obj::array can only be stored on pmem. Creating array on stack will result with "pool_error" exception.
All methods which allow write access to specific element will add it to an active transaction.
All methods which return non-const pointer to raw data add entire array to a transaction.
When a non-const iterator is returned it adds part of the array to a transaction while traversing.
- Note
- According to changes in C++ standard, pmem::obj::array is not an aggregate since C++20.
-
Since C++20 pmem::obj::array cannot be initialized via constructor for types with deleted copy constructor. This may change in the future.
-
Since C++20 pmem::obj::array for const types can be initialized only via default constructor. This may change in the future.