#pragma once #include "config/primitives.hpp" namespace assets::detail { template class component_set {}; template class component_set> { public: component_set() = default; protected: void clear_components() { std::apply( [](std::optional&... component) { (component.reset(), ...); }, components ); } z3d::structure> components{}; }; }