X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a4a0b7a61683f71695edc5b66c554d209311699f..7a3a100990355eb757dc81106b5aac6daed0b8e1:/include/xbt/config.hpp diff --git a/include/xbt/config.hpp b/include/xbt/config.hpp index f5b3c95222..a4e7517287 100644 --- a/include/xbt/config.hpp +++ b/include/xbt/config.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2016-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2016-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -23,7 +23,7 @@ namespace simgrid { namespace config { -XBT_PUBLIC_CLASS missing_key_error : public std::runtime_error { +class XBT_PUBLIC missing_key_error : public std::runtime_error { public: explicit missing_key_error(const std::string& what) : std::runtime_error(what) {} @@ -52,13 +52,12 @@ inline std::string to_string(std::string&& value) // Get config -template -XBT_PUBLIC(T const&) getConfig(const char* name); +template XBT_PUBLIC T const& getConfig(const char* name); -extern template XBT_PUBLIC(int const&) getConfig(const char* name); -extern template XBT_PUBLIC(double const&) getConfig(const char* name); -extern template XBT_PUBLIC(bool const&) getConfig(const char* name); -extern template XBT_PUBLIC(std::string const&) getConfig(const char* name); +extern template XBT_PUBLIC int const& getConfig(const char* name); +extern template XBT_PUBLIC double const& getConfig(const char* name); +extern template XBT_PUBLIC bool const& getConfig(const char* name); +extern template XBT_PUBLIC std::string const& getConfig(const char* name); // Register: @@ -69,22 +68,22 @@ extern template XBT_PUBLIC(std::string const&) getConfig(const char * @param value Initial/default value * @param callback called with the option value */ -template -XBT_PUBLIC(void) declareFlag(const char* name, const char* description, - T value, std::function callback = std::function()); - -extern template XBT_PUBLIC(void) declareFlag(const char* name, - const char* description, int value, std::function callback); -extern template XBT_PUBLIC(void) declareFlag(const char* name, - const char* description, double value, std::function callback); -extern template XBT_PUBLIC(void) declareFlag(const char* name, - const char* description, bool value, std::function callback); -extern template XBT_PUBLIC(void) declareFlag(const char* name, - const char* description, std::string value, std::function callback); +template +XBT_PUBLIC void declareFlag(const char* name, const char* description, T value, + std::function callback = std::function()); + +extern template XBT_PUBLIC void declareFlag(const char* name, const char* description, int value, + std::function callback); +extern template XBT_PUBLIC void declareFlag(const char* name, const char* description, double value, + std::function callback); +extern template XBT_PUBLIC void declareFlag(const char* name, const char* description, bool value, + std::function callback); +extern template XBT_PUBLIC void declareFlag(const char* name, const char* description, std::string value, + std::function callback); // ***** alias ***** -XBT_PUBLIC(void) alias(const char* realname, const char* aliasname); +XBT_PUBLIC void alias(const char* realname, const char* aliasname); inline void alias(std::initializer_list names) @@ -238,5 +237,6 @@ public: } } +XBT_PUBLIC std::string xbt_cfg_get_string(const char* name); #endif