+ T value, std::function<void(const T&)> callback = std::function<void(const T&)>());
+
+extern template XBT_PUBLIC(void) declareFlag(const char* name,
+ const char* description, int value, std::function<void(int const &)> callback);
+extern template XBT_PUBLIC(void) declareFlag(const char* name,
+ const char* description, double value, std::function<void(double const &)> callback);
+extern template XBT_PUBLIC(void) declareFlag(const char* name,
+ const char* description, bool value, std::function<void(bool const &)> callback);
+extern template XBT_PUBLIC(void) declareFlag(const char* name,
+ const char* description, std::string value, std::function<void(std::string const &)> callback);
+
+// ***** alias *****
+
+XBT_PUBLIC(void) alias(const char* realname, const char* aliasname);
+
+inline
+void alias(std::initializer_list<const char*> names)
+{
+ auto i = names.begin();
+ for (++i; i != names.end(); ++i)
+ alias(*names.begin(), *i);
+}