Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change two dynars (maybe more).
[simgrid.git] / include / xbt / string.hpp
index bb237f0..5b8ab7d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2019. 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. */
@@ -6,7 +6,7 @@
 #ifndef SIMGRID_XBT_STRING_HPP
 #define SIMGRID_XBT_STRING_HPP
 
-#include <simgrid_config.h>
+#include <simgrid/config.h>
 
 #include <cstdarg>
 #include <cstdlib>
@@ -60,11 +60,8 @@ class XBT_PUBLIC string : private string_data {
 public:
   // Types
   typedef std::size_t size_type;
-  typedef std::ptrdiff_t difference_type;
   typedef char& reference;
   typedef const char& const_reference;
-  typedef char* pointer;
-  typedef const char* const_pointer;
   typedef char* iterator;
   typedef const char* const_iterator;
 
@@ -124,7 +121,8 @@ public:
   }
   string& operator=(string const& s)
   {
-    assign(s.c_str(), s.size());
+    if (this != &s)
+      assign(s.c_str(), s.size());
     return *this;
   }
   string& operator=(std::string const& s)
@@ -139,7 +137,7 @@ public:
   bool empty() const    { return len != 0; }
   void shrink_to_fit() { /* Being there, but doing nothing */}
 
-  // Alement access
+  // Element access
   char* data()              { return string_data::data; }
   const char* data()  const { return string_data::data; }
   char* c_str()             { return string_data::data; }