memory
|
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.
Typedefs | |
using | value_type = T |
using | iterator = value_type * |
using | const_iterator = const value_type * |
Member Functions | |
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 |
joint_array | ( | std::size_t | size, |
joint_type< JointType > & | j | ||
) |
size
default-constructed objects using the specified joint memory. size
is too big and anything thrown by T
s constructor. If an allocation is thrown, the memory will be released directly. joint_array | ( | std::size_t | size, |
const value_type & | val, | ||
joint_type< JointType > & | j | ||
) |
size
copies of val
using the specified joint memory. size
is too big and anything thrown by T
s constructor. If an allocation is thrown, the memory will be released directly. joint_array | ( | std::initializer_list< value_type > | ilist, |
joint_type< JointType > & | j | ||
) |
T
s constructor. If an allocation is thrown, the memory will be released directly. joint_array | ( | InIter | begin, |
InIter | end, | ||
joint_type< JointType > & | j | ||
) |
T
s constructor using the specified joint memory. T
s constructor. If an allocation is thrown, the memory will be released directly. joint_array | ( | const joint_array< T > & | other, |
joint_type< JointType > & | j | ||
) |
other
into the storage of the specified joint memory. T
s constructor. If an allocation is thrown, the memory will be released directly. joint_array | ( | joint_array< T > && | other, |
joint_type< JointType > & | j | ||
) |
other
into the storage of the specified joint memory. T
s constructor. If an allocation is thrown, the memory will be released directly.
|
noexcept |
|
noexcept |
i
th object. i < size()
.
|
noexcept |
i
th object. i < size()
.
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
true
if the array is empty, false
otherwise.