diff --git a/libs/util/include/psemek/util/any_set.hpp b/libs/util/include/psemek/util/any_set.hpp index 5ffef7ab..6017f7a6 100644 --- a/libs/util/include/psemek/util/any_set.hpp +++ b/libs/util/include/psemek/util/any_set.hpp @@ -9,6 +9,9 @@ namespace psemek::util struct any_set { + template + T & insert(T value); + template T & emplace(Args && ... args); @@ -34,6 +37,12 @@ namespace psemek::util std::unordered_map storage_; }; + template + T & any_set::insert(T value) + { + return std::any_cast(storage_[typeid(std::remove_cvref_t)] = std::move(value)); + } + template T & any_set::emplace(Args && ... args) {