14#define FLECS_TBUILDER template<typename ... Components> class
15#define FLECS_IBUILDER template<typename IBase, typename ... Components> class
17template<FLECS_TBUILDER T,
typename TDesc,
typename Base, FLECS_IBUILDER IBuilder,
typename ... Components>
18struct builder : IBuilder<Base, Components ...>
20 using IBase = IBuilder<Base, Components ...>;
29 : IBase(&m_desc, f.m_term_index)
36 :
builder<T, TDesc, Base, IBuilder, Components...>(f) { }
42 T<Components ...> build() {
43 return T<Components...>(m_world, *
static_cast<Base*
>(
this));
47 flecs::world_t* world_v()
override {
return m_world; }
49 flecs::world_t *m_world;