Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define simgrid::xbt::set_value<>().
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 19 Apr 2018 11:34:15 +0000 (13:34 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 19 Apr 2018 14:06:43 +0000 (16:06 +0200)
include/xbt/config.hpp
src/xbt/config.cpp

index eb0e3d6..704c60f 100644 (file)
@@ -43,6 +43,15 @@ inline std::string to_string(std::string&& value)
   return std::move(value);
 }
 
+// Set config
+
+template <class T> XBT_PUBLIC void set_value(const char* name, T value);
+
+extern template XBT_PUBLIC void set_value<int>(const char* name, int value);
+extern template XBT_PUBLIC void set_value<double>(const char* name, double value);
+extern template XBT_PUBLIC void set_value<bool>(const char* name, bool value);
+extern template XBT_PUBLIC void set_value<std::string>(const char* name, std::string value);
+
 // Get config
 
 template <class T> XBT_PUBLIC T const& get_value(const char* name);
index 19673d9..e61832d 100644 (file)
@@ -366,6 +366,18 @@ void Config::help()
   }
 }
 
+// ***** set_value *****
+
+template <class T> XBT_PUBLIC void set_value(const char* name, T value)
+{
+  (*simgrid_config)[name].set_value<T>(std::move(value));
+}
+
+template XBT_PUBLIC void set_value<int>(const char* name, int value);
+template XBT_PUBLIC void set_value<double>(const char* name, double value);
+template XBT_PUBLIC void set_value<bool>(const char* name, bool value);
+template XBT_PUBLIC void set_value<std::string>(const char* name, std::string value);
+
 // ***** get_value *****
 
 template <class T> XBT_PUBLIC T const& get_value(const char* name)