Files
Z3D/include/assets/data/generic/component_set.hpp
2025-04-01 21:51:56 +02:00

34 lines
493 B
C++

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