X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e167326c1369032305b7eb87e166b12d6690df64..3078d6318cafa1c1b27ad35fe7c09ad1e1eee001:/include/xbt/config.hpp diff --git a/include/xbt/config.hpp b/include/xbt/config.hpp index 8200bf06c6..a4e7517287 100644 --- a/include/xbt/config.hpp +++ b/include/xbt/config.hpp @@ -1,11 +1,10 @@ -/* Copyright (c) 2016. 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. */ -#ifndef _XBT_CONFIG_HPP_ -#define _XBT_CONFIG_HPP_ +#ifndef XBT_CONFIG_HPP +#define XBT_CONFIG_HPP #include @@ -24,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) {} @@ -53,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: @@ -70,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) @@ -169,8 +167,8 @@ typename std::enable_if