diff --git a/.cache/clangd/index/Main.cpp.8DF821074DA7C9F4.idx b/.cache/clangd/index/Main.cpp.8DF821074DA7C9F4.idx index 0eed745..d0860d6 100644 Binary files a/.cache/clangd/index/Main.cpp.8DF821074DA7C9F4.idx and b/.cache/clangd/index/Main.cpp.8DF821074DA7C9F4.idx differ diff --git a/Src/IACore/imp/inl/iacore/list/interface/entry.interface.inl b/Src/IACore/imp/inl/iacore/list/interface/entry.interface.inl index 662479b..a54e3d4 100644 --- a/Src/IACore/imp/inl/iacore/list/interface/entry.interface.inl +++ b/Src/IACore/imp/inl/iacore/list/interface/entry.interface.inl @@ -20,7 +20,7 @@ namespace ia { - // [IATODO: IMPL] (Allocator must be fore _value_type, not ListEntry<_value_type>) + // [IATODO: IMPL] (Allocator must be for _value_type, not ListEntry<_value_type>) template class ListEntry; diff --git a/Src/IACore/imp/inl/iacore/map/interface/map.interface.inl b/Src/IACore/imp/inl/iacore/map/interface/map.interface.inl index edd4e86..3a1ff12 100644 --- a/Src/IACore/imp/inl/iacore/map/interface/map.interface.inl +++ b/Src/IACore/imp/inl/iacore/map/interface/map.interface.inl @@ -36,10 +36,10 @@ namespace ia using key_type = _key_type; using value_type = _value_type; using allocator_type = _allocator_type; - using iterator = Vector*>::iterator; - using const_iterator = Vector*>::const_iterator; - using reverse_iterator = Vector*>::reverse_iterator; - using reverse_const_iterator = Vector*>::reverse_const_iterator; + using iterator = Vector::iterator; + using const_iterator = Vector::const_iterator; + using reverse_iterator = Vector::reverse_iterator; + using reverse_const_iterator = Vector::reverse_const_iterator; STATIC CONSTEXPR size_type alignment = _alignment; @@ -57,7 +57,7 @@ namespace ia BOOL contains(IN CONST key_type& key) CONST; public: - _value_type& operator[](IN CONST _key_type& key) { const auto t = get(key); if(t) return *t; set(key, value_type()); return (*m_insertedOrder.back())->Value; } + _value_type& operator[](IN CONST _key_type& key) { const auto t = get(key); if(t) return *t; set(key, value_type()); return m_insertedOrder.back()->Value; } CONST _value_type& operator[](IN CONST _key_type& key) CONST { const auto t = get(key); if(!t) throw "no such key"; return *t; } public: @@ -81,6 +81,6 @@ namespace ia private: Vector> m_buckets; - Vector*> m_insertedOrder; + Vector m_insertedOrder; }; } diff --git a/Src/IACore/imp/inl/iacore/map/map.inl b/Src/IACore/imp/inl/iacore/map/map.inl index 89363ec..a64c7b7 100644 --- a/Src/IACore/imp/inl/iacore/map/map.inl +++ b/Src/IACore/imp/inl/iacore/map/map.inl @@ -39,7 +39,8 @@ namespace ia { define_member_function(VOID, set, IN CONST key_type& key, IN value_type&& value) { - m_insertedOrder.pushBack(getBucket(key).append({ key, IA_MOVE(value) })); + const auto listEntry = getBucket(key).append({ key, IA_MOVE(value) }); + m_insertedOrder.pushBack(*listEntry); } define_const_member_function(CONST _value_type*, get, IN CONST key_type& key) diff --git a/Src/IACoreTest/imp/cpp/Main.cpp b/Src/IACoreTest/imp/cpp/Main.cpp index e910e92..17a103d 100644 --- a/Src/IACoreTest/imp/cpp/Main.cpp +++ b/Src/IACoreTest/imp/cpp/Main.cpp @@ -2,6 +2,7 @@ #include #include +#include using namespace ia; @@ -18,5 +19,16 @@ int main(int argc, char* argv[]) print(v1); + List l1; + + Map m1; + m1["sdd"] = 2; + m1["bx"] = 5; + + for(const auto& v: m1) + { + printf("%s, %i\n", v->Key.c_str(), v->Value); + } + return 0; } \ No newline at end of file