#pragma once #include #include #include namespace Copium { class SystemPool; class SystemOrderer { private: std::type_index systemId; SystemPool* systemPool = nullptr; public: SystemOrderer(std::type_index systemId, SystemPool* systemPool); template void Before() { Before(typeid(Other)); } template void After() { After(typeid(Other)); } private: void Before(const std::type_index& otherSystemId); void After(const std::type_index& otherSystemId); }; }