static member variables must be initialized

This commit is contained in:
2025-03-29 19:11:18 -05:00
parent 5955166ac0
commit dc389ef0c5
4 changed files with 8 additions and 5 deletions

View File

@@ -271,7 +271,7 @@
apps.${system}.default = { apps.${system}.default = {
type = "app"; type = "app";
program = "${self.Archimedes}/bin/Archimedes"; program = "${self.Archimedes.examples.minimal}/bin/Archimedes";
}; };
}; };

View File

@@ -11,11 +11,12 @@ namespace Archimedes {
friend class App; friend class App;
static std::list<std::string*> modules;
public: public:
typedef Module* create_t(void*, App*); typedef Module* create_t(void*, App*);
static std::list<std::string*> modules;
static std::list<std::string*>& GetModules() { return modules; } static std::list<std::string*>& GetModules() { return modules; }
Module(void* h, App* a) : handle(h), app(a) { modules.push_back(&name); } Module(void* h, App* a) : handle(h), app(a) { modules.push_back(&name); }
@@ -41,4 +42,6 @@ namespace Archimedes {
}; };
} }
auto Archimedes::Module::modules = std::list<std::string*>();
#endif #endif

View File

@@ -6,7 +6,7 @@ void MinimalApp::run() {
for(auto* m : modules) for(auto* m : modules)
m->onLoad(); m->onLoad();
for(auto* s : Archimedes::Module::GetModules()) for(auto* s : Archimedes::Module::modules)
std::cout << "Module: " << (s ? *s : "nullptr") << std::endl; std::cout << "Module: " << (s ? *s : "nullptr") << std::endl;
// Main loop // Main loop
while (!done && !modules.empty()) { while (!done && !modules.empty()) {

View File

@@ -23,9 +23,9 @@ class MinimalApp : public Archimedes::App {
void run(); void run();
void stopModule(std::list<Archimedes::Module*>::iterator); //void stopModule(std::list<Archimedes::Module*>::iterator);
void startModule(std::string); //void startModule(std::string);
}; };