template<
typename T>
class foonathan::memory::joint_array< T >
A zero overhead dynamic array using joint memory.
If you use, e.g. std::vector with joint_allocator, this has a slight additional overhead. This type is joint memory aware and has no overhead.
It has a dynamic, but fixed size, it cannot grow after it has been created.
|
| template<typename JointType > |
| | joint_array (std::size_t size, joint_type< JointType > &j) |
| |
| template<typename JointType > |
| | joint_array (std::size_t size, const value_type &val, joint_type< JointType > &j) |
| |
| template<typename JointType > |
| | joint_array (std::initializer_list< value_type > ilist, joint_type< JointType > &j) |
| |
| template<typename InIter , typename JointType , typename = decltype(*std::declval<InIter&>()++)> |
| | joint_array (InIter begin, InIter end, joint_type< JointType > &j) |
| |
|
| joint_array (const joint_array &)=delete |
| |
| template<typename JointType > |
| | joint_array (const joint_array &other, joint_type< JointType > &j) |
| |
|
| joint_array (joint_array &&)=delete |
| |
| template<typename JointType > |
| | joint_array (joint_array &&other, joint_type< JointType > &j) |
| |
| | ~joint_array () noexcept |
| |
|
joint_array & | operator= (const joint_array &)=delete |
| |
|
joint_array & | operator= (joint_array &&)=delete |
| |
| std::size_t | size () const noexcept |
| |
| bool | empty () const noexcept |
| |
|
| value_type & | operator[] (std::size_t i) noexcept |
| |
| const value_type & | operator[] (std::size_t i) const noexcept |
| |
|
| value_type * | data () noexcept |
| |
| const value_type * | data () const noexcept |
| |
|
| iterator | begin () noexcept |
| |
| const_iterator | begin () const noexcept |
| |
|
| iterator | end () noexcept |
| |
| const_iterator | end () const noexcept |
| |