Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'maximal-subset-search' into 'master'
[simgrid.git] / src / xbt / xbt_parse_units.cpp
index 9439e83..768ceca 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2023. 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. */
@@ -27,11 +27,7 @@ public:
 
 unit_scale::unit_scale(std::initializer_list<std::tuple<const std::string, double, int, bool>> generators)
 {
-  for (const auto& gen : generators) {
-    const std::string& unit = std::get<0>(gen);
-    double value            = std::get<1>(gen);
-    const int base          = std::get<2>(gen);
-    const bool abbrev       = std::get<3>(gen);
+  for (auto [unit, value, base, abbrev] : generators) {
     double mult;
     std::vector<std::string> prefixes;
     switch (base) {
@@ -66,9 +62,9 @@ static double xbt_parse_get_value_with_unit(const std::string& filename, int lin
   double res      = strtod(string.c_str(), &endptr);
   const char* ptr = endptr; // for const-correctness
   if (errno == ERANGE)
-    throw simgrid::ParseError(filename, lineno, std::string("value out of range: ") + string);
+    throw simgrid::ParseError(filename, lineno, "value out of range: " + string);
   if (ptr == string)
-    throw simgrid::ParseError(filename, lineno, std::string("cannot parse number:") + string);
+    throw simgrid::ParseError(filename, lineno, "cannot parse number:" + string);
   if (ptr[0] == '\0') {
     // Ok, 0 can be unit-less
     if (res != 0 && not entity_kind.empty())