30 #include "eng3d/utils.hpp"
43 data[index].emplace(e);
49 assert(
data[index].has_value());
51 slots.push_back(index);
55 assert(index <
data.size());
56 return data[index].value();
60 assert(index <
data.size());
61 return data[index].value();
65 assert(index <
data.size());
66 return data[index].value();
69 const T&
at(
size_t index)
const {
70 assert(index <
data.size());
71 return data[index].value();
76 for(
const auto& e :
data)
88 std::vector<std::optional<T>>
data;
const T & operator[](size_t index) const
void for_each(const F &lambda) const
T & operator[](size_t index)
const T & at(size_t index) const
void for_each(const F &lambda)
std::vector< std::optional< T > > data
std::vector< size_t > slots
void remove(size_t index)