Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Constify xbt::string::to_string_data.
[simgrid.git] / include / xbt / string.hpp
index 527892905c5bbc77e451329c3e89ce3becf3c19c..87ea38383e69b09c8ff266802469ed9eb3355964 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2021. 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. */
@@ -72,11 +72,11 @@ class XBT_PUBLIC string {
 
 public:
   // Types
-  typedef std::size_t size_type;
-  typedef char& reference;
-  typedef const char& const_reference;
-  typedef char* iterator;
-  typedef const char* const_iterator;
+  using size_type       = std::size_t;
+  using reference       = char&;
+  using const_reference = const char&;
+  using iterator        = char*;
+  using const_iterator  = const char*;
 
   // Dtor
   ~string()
@@ -101,7 +101,7 @@ public:
   string() : string(&NUL, 0) {}
   explicit string(const char* s) : string(s, strlen(s)) {}
   string(string const& s) : string(s.c_str(), s.size()) {}
-  string(string&& s) noexcept : str(std::move(s.str))
+  string(string&& s) noexcept : str(s.str)
   {
     s.str.len  = 0;
     s.str.data = &NUL;
@@ -174,7 +174,7 @@ public:
     return data()[i];
   }
   // Conversion
-  static string_data& to_string_data(string& s) { return s.str; }
+  static const string_data& to_string_data(const string& s) { return s.str; }
   operator std::string() const { return std::string(this->c_str(), this->size()); }
 
   // Iterators