17 using IBase = IBuilder<Base, Components ...>;
27 entity_desc.
name = name;
28 entity_desc.
sep =
"::";
36 template <
typename Func>
39 typename std::decay<Func>::type, Components...>;
40 return build<Delegate>(FLECS_FWD(func));
45 template <
typename Func>
48 typename std::decay<Func>::type, Components...>;
50 return build<Delegate>(FLECS_FWD(func));
54 flecs::world_t* world_v()
override {
return m_world; }
56 flecs::world_t *m_world;
60 template <
typename Delegate,
typename Func>
61 T build(Func&& func) {
62 auto ctx = FLECS_NEW(Delegate)(FLECS_FWD(func));
63 m_desc.callback = Delegate::run;
64 m_desc.binding_ctx = ctx;
65 m_desc.binding_ctx_free =
reinterpret_cast<
68 return T(m_world, &m_desc, m_instanced);