3 #include <initializer_list> 4 #include <mos/core/tracked_container.hpp> 14 using Items = std::vector<T>;
15 using size_type =
typename Items::size_type;
20 explicit Container(
const std::initializer_list<It> list)
23 template <
class It>
Container(It begin, It end) { assign(begin, end); }
26 :
Container(container.begin(), container.end()) {}
28 template <
class It>
void assign(It begin, It end) {
29 items_.assign(begin, end);
33 typename Items::iterator insert(
typename Items::const_iterator pos, It begin,
35 return items_.insert(pos, begin, end);
38 typename Items::iterator begin() {
return items_.begin(); }
39 typename Items::iterator end() {
return items_.end(); }
40 typename Items::const_iterator begin()
const {
return items_.begin(); }
41 typename Items::const_iterator end()
const {
return items_.end(); }
42 void assign(
const std::initializer_list<T> &list) { items_.assign(list); }
43 typename Items::reference operator[](
typename Items::size_type pos) {
46 typename Items::const_reference
47 operator[](
typename Items::size_type pos)
const {
50 typename Items::size_type size()
const {
return items_.size(); }
51 typename Items::reference back() {
return items_.back(); }
52 const T *data()
const noexcept {
return items_.data(); }
53 void clear() { items_.clear(); }
55 void push_back(
const T &item) { items_.push_back(item); }
58 insert(end(), container.begin(), container.end());
Container.
Definition: container.hpp:12
Container with modified time stamp.
Definition: container.hpp:9