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 |
|