X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1f606358fff6ef994cd58570e7c77ee6259d6a4e..6e58f8428ae1bef7ef227baf9fc5a569d6231af3:/include/xbt/config.hpp diff --git a/include/xbt/config.hpp b/include/xbt/config.hpp index af350a5307..ecdb613df8 100644 --- a/include/xbt/config.hpp +++ b/include/xbt/config.hpp @@ -21,9 +21,9 @@ namespace simgrid { namespace config { -bool parseBool(const char* value); -double parseDouble(const char* value); -long int parseLong(const char* value); +XBT_PUBLIC(bool) parseBool(const char* value); +XBT_PUBLIC(double) parseDouble(const char* value); +XBT_PUBLIC(long int) parseLong(const char* value); template struct parse_option { static inline T parse(const char* value) @@ -98,6 +98,14 @@ inline std::string to_string(std::string&& value) XBT_PUBLIC(void) declareFlag(const char* name, const char* description, std::function callback); +template +void declareFlag(const char* name, const char* description, F callback) +{ + declareFlag(name, description, [callback](const char* value) { + callback(parse(value)); + }); +} + /** Bind a variable to configuration flag * * @param value Bound variable