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)