X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5d00e5f256a27ccad82ab92aeea7943d2678e85b..841d7ae6385610f340ae3c0be8273bdd9ec80cd5:/include/xbt/Extendable.hpp diff --git a/include/xbt/Extendable.hpp b/include/xbt/Extendable.hpp index 66c2abae61..d47298dc81 100644 --- a/include/xbt/Extendable.hpp +++ b/include/xbt/Extendable.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2019. The SimGrid Team. +/* Copyright (c) 2015-2020. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -19,8 +19,8 @@ template class Extendable; template class Extension { - static const std::size_t INVALID_ID = std::numeric_limits::max(); - std::size_t id_ = INVALID_ID; + static constexpr std::size_t INVALID_ID = std::numeric_limits::max(); + std::size_t id_ = INVALID_ID; friend class Extendable; explicit constexpr Extension(std::size_t id) : id_(id) {} public: @@ -48,7 +48,8 @@ template class Extendable { private: static std::vector deleters_; - std::vector extensions_; + std::vector extensions_{(deleters_.size() > 0 ? deleters_.size() : 1), nullptr}; + public: static size_t extension_create(void (*deleter)(void*)) { @@ -68,7 +69,7 @@ public: { return Extension(extension_create([](void* p) { delete static_cast(p); })); } - Extendable() : extensions_((deleters_.size() > 0 ? deleters_.size() : 1), nullptr) {} + Extendable() {} Extendable(const Extendable&) = delete; Extendable& operator=(const Extendable&) = delete; ~Extendable()