by_name(value); // Simply ensure that this value exists, it will be picked up later
});
}
-void ModuleGroup::init_from_flag_value()
+void ModuleGroup::init_from_flag_value() const
{
by_name(simgrid::config::get_value<std::string>(opt_name_)).init();
}
ModuleGroup& ModuleGroup::add(const char* id, const char* desc, std::function<void()> init)
{
- table_.emplace_back(Module(id, desc, init));
+ table_.emplace_back(id, desc, std::move(init));
return *this;
}
const char* description_;
std::function<void()> init;
Module(const char* id, const char* desc, std::function<void()> init_fun)
- : name_(id), description_(desc), init(init_fun)
+ : name_(id), description_(desc), init(std::move(init_fun))
{
}
};
std::string opt_name_;
public:
- ModuleGroup(const std::string& kind) : kind_(kind) {}
+ explicit ModuleGroup(const std::string& kind) : kind_(kind) {}
ModuleGroup& add(const char* id, const char* desc, std::function<void()> init);
Module const& by_name(const std::string& name) const;
void help() const;
- const std::string get_kind() const { return kind_; }
+ const std::string& get_kind() const { return kind_; }
std::string existing_values() const;
void create_flag(const std::string& opt_name, const std::string& descr, const std::string& default_value,
bool init_now);
- void init_from_flag_value();
+ void init_from_flag_value() const;
};
}; // namespace simgrid