summaryrefslogtreecommitdiff
path: root/c++
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2023-10-19 20:46:31 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2023-10-19 20:46:31 +0200
commit11fc30c02087768c90650c53be4a6e76b5f879e0 (patch)
tree1eef14107e3cc426bdf78c034dc40320ac929f16 /c++
parent378b5e1941337f89e324e878ffafc354c9435172 (diff)
core: Fixed compilation issues
Diffstat (limited to 'c++')
-rw-r--r--c++/core/id.h17
-rw-r--r--c++/core/id_map.h22
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();