Skip to content

Releases: Tessil/ordered-map

v1.1.0

15 Jan 15:23
Compare
Choose a tag to compare

This release fixes a critical bug in insert_at_position and erase (unordered_erase and pop_back are not affected), upgrade is recommended if these functions are used.

  • Fix shift_indexes_in_buckets by going through the whole m_buckets_data instead of finding back the bucket through m_values (#39 39)
  • When exceptions are disabled, only print the error message when defined(TSL_DEBUG) instead of !defined(NDEBUG)
  • Add function to release values_container (#36)

v1.0.0

22 Jun 05:12
Compare
Choose a tag to compare
  • Fix issue #24, add support for efficient serialization.
  • Add bool contains(...) methods.

v0.8.1

17 Feb 19:28
3c14151
Compare
Choose a tag to compare
  • Fix compilation error with GCC 9, the implicit copy/move constructor/operator of the iterator were not generated.
  • Fix issue #23, rename the internal insert with hint method to insert_hint to avoid a potential ambiguous overload with the insert with a pair of iterators.

v0.8.0

27 Jan 14:20
Compare
Choose a tag to compare
  • Rename CMake project name from tsl_ordered_map to tsl-ordered-map for coherence with the convention used by most package managers. The find_package(tsl-ordered-map) command must now be used instead of the find_package(tsl_ordered_map).
  • Set bucket count for default constructed map/set to 0 to avoid any allocation.
  • Fix CMake >= 3.13 warning on Policy CMP0076 and add quotes to paths.
  • Remove cxx_std_11 from target_compile_features to avoid a warning with older versions of CMake that don't support it. The warning was given even if the target_compile_features was surrounded in a if(${CMAKE_VERSION} VERSION_GREATER "3.7").
  • Fix bug where using rehash(0) on an empty map with a bucket_count > 0 would result in an invalid m_buckets pointer leading to potential segfaults.

v0.7.1

03 Nov 15:09
Compare
Choose a tag to compare
  • Fix CMakeLists.txt. Only add the CMake installation rules for version of CMake >= 3.3 to keep compatibility with CMake 3.1.

v0.7.0

12 Oct 10:49
Compare
Choose a tag to compare
  • Add MSVC debugger visualization .natvis file (#20).
  • Fix issue in erase and insert_at_position on platforms where the char type is unsigned.
  • Add installation rules in the CMake of the project (#22).

v0.6.0

06 Aug 20:26
Compare
Choose a tag to compare

This release introduce a minor backward incompatibility by moving the headers files.

  • Move the header files from tsl to include/tsl for more coherence with other C++ libraries.
  • For CMake users, add an exported target tsl::ordered_map to be used with target_link_libraries.

v0.5.0

04 Aug 13:38
9642242
Compare
Choose a tag to compare
  • In max_load_factor(float ml), check that the ml parameter is in the range [0.1, 0.95].
  • Bug correction, restore support for copy constructible only objects as key or value in a map (#11) .
  • Bug correction, set a moved hash map/set in a valid state so that it can still be used even after a move. (#17)
  • Add the possibility to use the library without exceptions (#13)
  • Add support for large maps/sets (more than 2^32 - 1 elements) through an extra class template parameter (#18)

v0.4.0

12 Aug 10:34
Compare
Choose a tag to compare
  • Split ordered_map.h into ordered_hash.h, ordered_map.h and ordered_set.h.
  • Move header files from src directory to tsl directory
  • Reduce default max load factor to 0.75.
  • Bug correction in equal_range, the second iterator was always equal to the first.
  • Add methods taking a precalculated hash for lookups.
  • Correct amount of reserved space for range insert.
  • Use uint_least32_t instead of uint32_t for portability.
  • Bug correction in 'iterator erase(const_iterator first, const_iterator last)`.
  • Add insert_at_position, emplace_at_position and try_emplace_at_position methods.
  • Correct method signature of emplace_hint.

v0.3.0

11 Jul 15:10
Compare
Choose a tag to compare
  • Add try_emplace and insert_or_assign methods (#7).
  • Bug correction (#5) for the clear() method.
  • Use 'Empty Base Optimization' for Hash and KeyEqual to reduce the sizeof(tsl::ordered_map/set).
  • Add iterator nth(size_type index) method.
  • Add missing method for operator+ in iterators (#4).
  • Bug correction, check that we are not over max_size() when inserting a new element.