Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] initialization lists and co.
[simgrid.git] / include / xbt / Extendable.hpp
index d95d186b65d8e0806ced62c7bdb746aa237a4843..66c2abae6107f4979233e388f004be46e784f364 100644 (file)
@@ -20,11 +20,11 @@ template<class T>          class Extendable;
 template<class T, class U>
 class Extension {
   static const std::size_t INVALID_ID = std::numeric_limits<std::size_t>::max();
-  std::size_t id_;
+  std::size_t id_                     = INVALID_ID;
   friend class Extendable<T>;
   explicit constexpr Extension(std::size_t id) : id_(id) {}
 public:
-  explicit constexpr Extension() : id_(INVALID_ID) {}
+  explicit constexpr Extension() {}
   std::size_t id() const { return id_; }
   bool valid() const { return id_ != INVALID_ID; }
 };
@@ -110,9 +110,7 @@ public:
   void set_data(void* data){
     extensions_[0]=data;
   }
-  void* get_data(){
-    return extensions_[0];
-  }
+  void* get_data() const { return extensions_[0]; }
   // Convenience extension access when the type has a associated EXTENSION ID:
   template <class U> U* extension() const { return extension<U>(U::EXTENSION_ID); }
   template<class U> void extension_set(U* p) { extension_set<U>(U::EXTENSION_ID, p); }