Releases: electronicarts/EASTL
Releases · electronicarts/EASTL
3.05.02
- Fixed move_iterator operator++(int) / operator--(int) not incrementing its state.
- Implemented fixed_ring_buffer template alias to simplify the creation of ring_buffers backed by fixed_sized containers.
- Added templates aliases for new hashtable based container names. (eg. unordered_set and unordered_map)
- Improved internal hashtable support for move-only (aka. non-copyable types).
- string_view fixes:
- implemented cbegin/rbegin/crbegin fixes and unit tests
- implemented cend/rend/crend fixes and unit tests
- Added CharTypeStringRSearch function to char_traits header and fixed unit tests to call string_view::rfrind.
3.05.00
- Implemented eastl:string_view, a non-owning string type that isn't templated on an allocator making it suitable for use at API boundaries.
- Adding support for typed get for tuple (e.g. get(tuple& t)).
- CoreAllocatorAdapter::operator= now copies the allocator name.
- Fixed strict-aliasing issues in the eastl::intrusive_list implementation.
- Adding move semantic guards around test code requiring that language feature.
- Improving eastl::vector implementation to move elements (instead of copying) during a resize.
3.04.00
- 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.
3.02.01
- Implemented eastl::optional. For more details see: http://en.cppreference.com/w/cpp/utility/optional.
- Implemented 'transparent operator functors' for the following:
- plus
- minus
- multiplies
- divides
- modulus
- negate
- equal_to
- not_equal_to
- greater
- less
- greater_equal
- less_equal
- logical_and
- logical_or
- logical_not
- Implemented eastl::void_t.
- Implemented eastl::is_same_v.
- Implemented eastl::reverse(Iterator) to support reverse iteration in ranged-based for-loops.
- Added allocation failure asserts to containers that do not utilize local storage.
3.01.01
- Implemented eastl::bool_constant.
- Implemented eastl::fixed_hash_map::rehash now supports hashtable bucket array overflow.
- Implemented non-member eastl::size/eastl::data/eastl::empty.
- Implemented eastl::is_hat_type trait.
- Removed internal eastl::empty structure due to name collision.