#include #include namespace extra2d { ModuleRegistry& ModuleRegistry::instance() { static ModuleRegistry instance; return instance; } std::vector> ModuleRegistry::createModules() { // 按优先级排序(值小的先初始化) std::vector sorted = registrations_; std::sort(sorted.begin(), sorted.end(), [](const ModuleInfo& a, const ModuleInfo& b) { return a.priority < b.priority; }); std::vector> modules; modules.reserve(sorted.size()); for (const auto& info : sorted) { modules.push_back(info.factory()); } return modules; } } // namespace extra2d