#include #include struct ComponentT { double speed_x = 50, speed_y = 55, speed_z = 7; static uint64_t typeCode() { return __LINE__; } static uint16_t typeSize() { return sizeof(ComponentT); } void loadFrom(const QJsonObject& o) {} void saveTo(QJsonObject& o) {} }; struct ComponentM { double speed_x = 50, speed_y = 55, speed_z = 7; static uint64_t typeCode() { return __LINE__; } static uint16_t typeSize() { return sizeof(ComponentM); } void loadFrom(const QJsonObject& o) {} void saveTo(QJsonObject& o) {} }; int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); ComponentT o; ECSMemoryPool pool; pool.registerComponent(o); pool.registerComponent(ComponentM()); auto refer1 = pool.generate(); auto refer2 = pool.generate(); auto refer3 = pool.generate(); auto mm = refer2; auto item = *mm.dataLock(); mm.unlock(); auto adf = pool.generate(); return app.exec(); }