Skip to content

3.04.00

Compare
Choose a tag to compare
@rparolin rparolin released this 26 Oct 14:52
· 325 commits to master since this release
  • Implemented eastl::any, a type-safe container for single values of any type that is implemented with the 'local buffer optimization' to avoid heap allocations for small objects.
  • Improving standards conformance of vector::swap and improves use of vector with non-copyable or move-only types (e.g. unique_ptr). This includes a subtle but important behaviour change were vector::swap will no longer perform a copy of the vectors elements when the allocator instances are different. If you rely on copying elements from one vector to another when calling vector::swap(), you can reintroduce the slower, standard non-conforming behaviour by building with 'EASTL_VECTOR_LEGACY_SWAP_BEHAVIOUR_REQUIRES_COPY_CTOR' as a global define.
  • Implemented hashtable::reserve(element_count). This rehashes the underlying hashtable of all the hash containers to the accomdate the element count without exceeding the max load factor.
    http://en.cppreference.com/w/cpp/container/unordered_map/reserve
  • Implemented eastl::is_swappable_with / eastl::is_nothrow_swappable_with.
  • Implemented eastl::clamp.
  • Brought back new classes from Frostbite:
    • segmented_vector: vector that does not invalid iterators/references when elements are added.
    • string_map: specialized version of a map that uses a const char* as the key.
    • string_hash_map: specialized version of a hash_map that uses a const char* as the key.