diff --git a/Common/onelab.h b/Common/onelab.h index c56bf1fd9f85e5b85a2da6af9f3da8798eb3305d..d90c0b2fc0e9d580b00d61c91a3b09090bb7df63 100644 --- a/Common/onelab.h +++ b/Common/onelab.h @@ -701,7 +701,7 @@ namespace onelab{ } return true; } - void _getAllParameters(std::set<parameter*> &ps) const + void _getAllParameters(std::set<parameter*, parameterLessThan> &ps) const { ps.insert(_numbers.begin(), _numbers.end()); ps.insert(_strings.begin(), _strings.end()); @@ -714,7 +714,7 @@ namespace onelab{ void clear(const std::string &name="", const std::string &client="") { if(name.empty() && client.empty()){ - std::set<parameter*> ps; + std::set<parameter*, parameterLessThan> ps; _getAllParameters(ps); for(std::set<parameter*>::iterator it = ps.begin(); it != ps.end(); it++) delete *it; @@ -753,7 +753,7 @@ namespace onelab{ // check if at least one parameter depends on the given client bool hasClient(const std::string &client) const { - std::set<parameter*> ps; + std::set<parameter*, parameterLessThan> ps; _getAllParameters(ps); for(std::set<parameter*>::iterator it = ps.begin(); it != ps.end(); it++) if((*it)->hasClient(client)) return true; @@ -763,7 +763,7 @@ namespace onelab{ // parameters that depend on a given client) bool getChanged(const std::string &client="") const { - std::set<parameter*> ps; + std::set<parameter*, parameterLessThan> ps; _getAllParameters(ps); for(std::set<parameter*>::iterator it = ps.begin(); it != ps.end(); it++){ if((client.empty() || (*it)->hasClient(client)) && (*it)->getChanged()){ @@ -776,7 +776,7 @@ namespace onelab{ // parameters that depend on a given client) bool setChanged(bool changed, const std::string &client="") { - std::set<parameter*> ps; + std::set<parameter*, parameterLessThan> ps; _getAllParameters(ps); for(std::set<parameter*>::iterator it = ps.begin(); it != ps.end(); it++) if(client.empty() || (*it)->hasClient(client)) @@ -788,7 +788,7 @@ namespace onelab{ std::vector<std::string> toChar(const std::string &client="") const { std::vector<std::string> s; - std::set<parameter*> ps; + std::set<parameter*, parameterLessThan> ps; _getAllParameters(ps); for(std::set<parameter*>::const_iterator it = ps.begin(); it != ps.end(); it++) if(client.empty() || (*it)->hasClient(client))