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<class T> struct parse_option {
static inline T parse(const char* value)
XBT_PUBLIC(void) declareFlag(const char* name, const char* description,
std::function<void(const char* value)> callback);
+template<class T, class F>
+void declareFlag(const char* name, const char* description, F callback)
+{
+ declareFlag(name, description, [callback](const char* value) {
+ callback(parse<T>(value));
+ });
+}
+
/** Bind a variable to configuration flag
*
* @param value Bound variable