diff --git a/include/aidge/utils/DynamicAttributes.hpp b/include/aidge/utils/DynamicAttributes.hpp index dc066664b6b5d41336facf60d785f00774862f96..52056852bc454f65f7d12cfc0608e5b6b0b1d933 100644 --- a/include/aidge/utils/DynamicAttributes.hpp +++ b/include/aidge/utils/DynamicAttributes.hpp @@ -39,12 +39,8 @@ namespace Aidge { ///\todo managing complex types or excluding non-trivial, non-aggregate types class DynamicAttributes : public Attributes { public: - DynamicAttributes() { - mAnyUtils.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); - } - DynamicAttributes(const std::map<std::string, future_std::any>& attrs): mAttrs(attrs) { - mAnyUtils.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); - } + DynamicAttributes() = default; + DynamicAttributes(const std::map<std::string, future_std::any>& attrs): mAttrs(attrs) {} /** * \brief Returning an Attribute identified by its name diff --git a/src/utils/DynamicAttributes.cpp b/src/utils/DynamicAttributes.cpp index 3bbf400382964ef7a4ab8f80aacc66409d872afa..6e64861605b3c853da0d754065e24ed43aba0f63 100644 --- a/src/utils/DynamicAttributes.cpp +++ b/src/utils/DynamicAttributes.cpp @@ -11,7 +11,11 @@ #include "aidge/utils/DynamicAttributes.hpp" -std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> Aidge::DynamicAttributes::mAnyUtils; +std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> Aidge::DynamicAttributes::mAnyUtils = []() { + std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> m; + m.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); + return m; +}(); template<> void Aidge::DynamicAttributes::setAttr<future_std::any>(const std::string& name, const future_std::any& value) {