Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define simgrid::xbt::set_default<>.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 19 Apr 2018 11:52:47 +0000 (13:52 +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 704c60f..202bb4a 100644 (file)
@@ -43,6 +43,15 @@ inline std::string to_string(std::string&& value)
   return std::move(value);
 }
 
   return std::move(value);
 }
 
+// Set default
+
+template <class T> XBT_PUBLIC void set_default(const char* name, T value);
+
+extern template XBT_PUBLIC void set_default<int>(const char* name, int value);
+extern template XBT_PUBLIC void set_default<double>(const char* name, double value);
+extern template XBT_PUBLIC void set_default<bool>(const char* name, bool value);
+extern template XBT_PUBLIC void set_default<std::string>(const char* name, std::string value);
+
 // Set config
 
 template <class T> XBT_PUBLIC void set_value(const char* name, T value);
 // Set config
 
 template <class T> XBT_PUBLIC void set_value(const char* name, T value);
index e61832d..3f5be9a 100644 (file)
@@ -366,6 +366,18 @@ void Config::help()
   }
 }
 
   }
 }
 
+// ***** set_default *****
+
+template <class T> XBT_PUBLIC void set_default(const char* name, T value)
+{
+  (*simgrid_config)[name].set_default_value<T>(std::move(value));
+}
+
+template XBT_PUBLIC void set_default<int>(const char* name, int value);
+template XBT_PUBLIC void set_default<double>(const char* name, double value);
+template XBT_PUBLIC void set_default<bool>(const char* name, bool value);
+template XBT_PUBLIC void set_default<std::string>(const char* name, std::string value);
+
 // ***** set_value *****
 
 template <class T> XBT_PUBLIC void set_value(const char* name, T value)
 // ***** set_value *****
 
 template <class T> XBT_PUBLIC void set_value(const char* name, T value)