20 #ifndef FASTRTPS_UTILS_COLLECTIONS_RESOURCELIMITEDVECTOR_HPP_ 21 #define FASTRTPS_UTILS_COLLECTIONS_RESOURCELIMITEDVECTOR_HPP_ 23 #include "ResourceLimitedContainerConfig.hpp" 27 #include <type_traits> 54 typename _KeepOrderEnabler = std::false_type,
55 typename _LimitsConfig = ResourceLimitedContainerConfig,
56 typename _Alloc = std::allocator<_Ty>,
57 typename _Collection = std::vector<_Ty, _Alloc>>
66 using pointer =
typename collection_type::pointer;
68 using reference =
typename collection_type::reference;
70 using size_type =
typename collection_type::size_type;
72 using iterator =
typename collection_type::iterator;
118 assert(
size() == other.size());
134 auto dist = std::distance(
collection_.cbegin(), pos);
155 auto dist = std::distance(
collection_.cbegin(), pos);
216 template<
typename ... Args>
270 template<
class UnaryPredicate>
317 template <
class InputIterator>
324 InputIterator value = first;
325 std::advance(value, n);
359 std::initializer_list<value_type> il)
586 template <
typename Enabler = _KeepOrderEnabler>
587 typename std::enable_if<!Enabler::value, void>::type
do_remove(
610 template <
typename Enabler = _KeepOrderEnabler>
611 typename std::enable_if<Enabler::value, void>::type
do_remove(
iterator insert(const_iterator pos, value_type &&value)
Insert value before pos.
Definition: ResourceLimitedVector.hpp:151
const_reverse_iterator crend() const noexcept
Definition: ResourceLimitedVector.hpp:469
pointer emplace_back(Args &&... args)
Construct and insert element at the end.
Definition: ResourceLimitedVector.hpp:217
const_reference back() const
Definition: ResourceLimitedVector.hpp:409
size_type max_size() const noexcept
Definition: ResourceLimitedVector.hpp:489
typename collection_type::size_type size_type
Definition: ResourceLimitedVector.hpp:70
collection_type collection_
Definition: ResourceLimitedVector.hpp:544
typename collection_type::const_pointer const_pointer
Definition: ResourceLimitedVector.hpp:67
const_reverse_iterator rend() const noexcept
Definition: ResourceLimitedVector.hpp:464
reference operator[](size_type pos)
Definition: ResourceLimitedVector.hpp:382
std::enable_if<!Enabler::value, void >::type do_remove(iterator it)
Remove element.
Definition: ResourceLimitedVector.hpp:587
pointer push_back(value_type &&val)
Add element at the end.
Definition: ResourceLimitedVector.hpp:190
value_type * data()
Definition: ResourceLimitedVector.hpp:517
size_type size() const noexcept
Definition: ResourceLimitedVector.hpp:479
reference front()
Definition: ResourceLimitedVector.hpp:394
pointer push_back(const value_type &val)
Add element at the end.
Definition: ResourceLimitedVector.hpp:174
const_iterator end() const noexcept
Definition: ResourceLimitedVector.hpp:434
const_reference at(size_type pos) const
Definition: ResourceLimitedVector.hpp:376
reverse_iterator rbegin() noexcept
Definition: ResourceLimitedVector.hpp:444
typename collection_type::const_reverse_iterator const_reverse_iterator
Definition: ResourceLimitedVector.hpp:75
_Ty value_type
Definition: ResourceLimitedVector.hpp:64
_LimitsConfig configuration_type
Definition: ResourceLimitedVector.hpp:62
size_type capacity() const noexcept
Definition: ResourceLimitedVector.hpp:484
bool remove_if(UnaryPredicate pred)
Remove element.
Definition: ResourceLimitedVector.hpp:271
ResourceLimitedVector(configuration_type cfg=configuration_type(), const allocator_type &alloc=allocator_type())
Construct a ResourceLimitedVector.
Definition: ResourceLimitedVector.hpp:89
void clear()
Definition: ResourceLimitedVector.hpp:494
void assign(InputIterator first, InputIterator last)
Assign vector content.
Definition: ResourceLimitedVector.hpp:318
reverse_iterator rend() noexcept
Definition: ResourceLimitedVector.hpp:459
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
void pop_back()
Definition: ResourceLimitedVector.hpp:512
_Alloc allocator_type
Definition: ResourceLimitedVector.hpp:65
configuration_type configuration_
Definition: ResourceLimitedVector.hpp:543
iterator begin() noexcept
Definition: ResourceLimitedVector.hpp:414
typename collection_type::pointer pointer
Definition: ResourceLimitedVector.hpp:66
typename collection_type::const_iterator const_iterator
Definition: ResourceLimitedVector.hpp:73
ResourceLimitedVector(const ResourceLimitedVector &other)
Definition: ResourceLimitedVector.hpp:98
void assign(size_type n, const value_type &val)
Assign vector content.
Definition: ResourceLimitedVector.hpp:339
iterator end() noexcept
Definition: ResourceLimitedVector.hpp:429
std::enable_if< Enabler::value, void >::type do_remove(iterator it)
Remove element.
Definition: ResourceLimitedVector.hpp:611
ResourceLimitedVector & operator=(const ResourceLimitedVector &other)
Definition: ResourceLimitedVector.hpp:109
typename collection_type::difference_type difference_type
Definition: ResourceLimitedVector.hpp:71
const_reverse_iterator rbegin() const noexcept
Definition: ResourceLimitedVector.hpp:449
iterator erase(const_iterator pos)
Definition: ResourceLimitedVector.hpp:499
const_iterator cbegin() const noexcept
Definition: ResourceLimitedVector.hpp:424
typename collection_type::const_reference const_reference
Definition: ResourceLimitedVector.hpp:69
typename collection_type::iterator iterator
Definition: ResourceLimitedVector.hpp:72
bool contains(const value_type &val)
Contains element.
Definition: ResourceLimitedVector.hpp:292
Resource limited wrapper of std::vector.
Definition: ResourceLimitedVector.hpp:58
virtual ~ResourceLimitedVector()=default
reference at(size_type pos)
Wrappers to other basic vector methods.
Definition: ResourceLimitedVector.hpp:370
const_iterator cend() const noexcept
Definition: ResourceLimitedVector.hpp:439
typename collection_type::reverse_iterator reverse_iterator
Definition: ResourceLimitedVector.hpp:74
const_reverse_iterator crbegin() const noexcept
Definition: ResourceLimitedVector.hpp:454
_Collection collection_type
Definition: ResourceLimitedVector.hpp:63
void assign(std::initializer_list< value_type > il)
Assign vector content.
Definition: ResourceLimitedVector.hpp:358
bool empty() const noexcept
Definition: ResourceLimitedVector.hpp:474
iterator erase(const_iterator first, const_iterator last)
Definition: ResourceLimitedVector.hpp:505
const_iterator begin() const noexcept
Definition: ResourceLimitedVector.hpp:419
typename collection_type::reference reference
Definition: ResourceLimitedVector.hpp:68
iterator insert(const_iterator pos, const value_type &value)
Insert value before pos.
Definition: ResourceLimitedVector.hpp:130
bool ensure_capacity()
Make room for one item.
Definition: ResourceLimitedVector.hpp:553
const_reference front() const
Definition: ResourceLimitedVector.hpp:399
const value_type * data() const
Definition: ResourceLimitedVector.hpp:522
reference back()
Definition: ResourceLimitedVector.hpp:404