// // Created by Zoe Roux on 2021-06-02. // #pragma once #include #include namespace WAL { //! @brief A view caching entities containing requested components template class View { //! @brief A list of reference to entities that contains the std::vector> entities; explicit View(std::vector &entities) : entities() { std::copy_if(entities.begin(), entities.end(), std::back_inserter(this->entities), [](Entity &entity) { return (entity.hasComponent() && ...); }); } //! @brief A default copy constructor. View(const View &) = default; //! @brief A default destructor. ~View() = default; //! @brief A View is assignable. View &operator=(const View &) = default; }; }