-template<class T>
-XBT_PUBLIC(void) declareFlag(const char* name, const char* description,
- 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);
+template <class T>
+XBT_PUBLIC void declareFlag(const char* name, const char* description, 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);