Add util::any_set::insert
This commit is contained in:
parent
49fe46bce2
commit
24a74b1208
1 changed files with 9 additions and 0 deletions
|
|
@ -9,6 +9,9 @@ namespace psemek::util
|
|||
|
||||
struct any_set
|
||||
{
|
||||
template <typename T>
|
||||
T & insert(T value);
|
||||
|
||||
template <typename T, typename ... Args>
|
||||
T & emplace(Args && ... args);
|
||||
|
||||
|
|
@ -34,6 +37,12 @@ namespace psemek::util
|
|||
std::unordered_map<std::type_index, std::any> storage_;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
T & any_set::insert(T value)
|
||||
{
|
||||
return std::any_cast<T&>(storage_[typeid(std::remove_cvref_t<T>)] = std::move(value));
|
||||
}
|
||||
|
||||
template <typename T, typename ... Args>
|
||||
T & any_set::emplace(Args && ... args)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue