diff options
Diffstat (limited to 'c++')
-rw-r--r-- | c++/core/id.h | 17 | ||||
-rw-r--r-- | c++/core/id_map.h | 22 |
2 files changed, 3 insertions, 36 deletions
diff --git a/c++/core/id.h b/c++/core/id.h index cebb3bc..d836648 100644 --- a/c++/core/id.h +++ b/c++/core/id.h @@ -51,21 +51,4 @@ public: return value_; } }; - -/** - * @experimental - * Container for a class which has relations to the provided id classes. - * Meant as an idea for a generic class which uses this - */ -template<typename T, typename... Ids> -class obj_owns_ids { -private: - std::tuple<Ids...> children_; - T obj_; -public: - obj_owns_ids(T obj, Ids... children): - obj_{std::move(obj)}, - children_{std::move(children)} - {} -}; } diff --git a/c++/core/id_map.h b/c++/core/id_map.h index 2ca3025..d8329cf 100644 --- a/c++/core/id_map.h +++ b/c++/core/id_map.h @@ -36,7 +36,7 @@ private: break; } - if((free_ids_.front() + 1) < data_.size()){ + if((free_ids_.front().get_value() + 1) < data_.size()){ break; } @@ -63,7 +63,7 @@ public: /// @todo Fix size_t and id base type if(free_ids_.empty()){ try { - size_t i = data._size(); + size_t i = data_.size(); data_.emplace_back(std::move(val)); return saw::id<T>{i}; } catch(std::exception& e) { @@ -72,15 +72,7 @@ public: } else { auto f_id = std::move(free_ids_.back()); free_ids_.pop_back(); - if(free_ids_.size()*2 <= free_ids_.capacity()){ - try{ - free_ids_.shrink_to_fit(); - }catch(std::exception& e){ - free_ids_.push_back(f_id); - return make_error<err::out_of_memory>(); - } - } - data_.at(f_id.get_value()) = std::move(dat); + data_.at(f_id.get_value()) = std::move(val); return f_id; } @@ -107,14 +99,6 @@ public: if((val.get_value() + 1) == data_.size()){ data_.pop_back(); this->reduce_free_ids(); - if(free_ids_.size()*2 <= free_ids_.capacity()){ - try { - free_ids_.shrink_to_fit(); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - } if(data_.size()*2 <= data_.capacity()){ try { data_.shrink_to_fit(); |