Adding explicit moves to eastl::string::operator+ due to NRVO rules.
Removing dependency on global new/delete in eastl::any and routing all memory requests to the default allocator.
Removing support for 'EASTL_STRING_OPT_CHAR_INIT'.
3.13.00
5 years ago
Fixed eastl::deque selecting an optimized 'memmove' code path to move elements within a memory page. The implementation was incorrectly selecting code that utilized memmove for non-trivial objects.
Removing some fallback code for variadic template code paths in allocator_traits.h
Added more type_trait variable template for values.
Fixed issue in eastl::unique_ptr that would call deleter for unique_ptrs holding a nullptr.
3.12.08
5 years ago
Resolved eastl::function memory leak when assigning to a non-null eastl::function with a closure containing non-trivial types.
Fixed all eastl::list::insert overloads to return the insertation position for C++11 standards conformance.
Fixed eastl::vector noexcept annotations to use EABase portability macros.
Resolved compilation errors when using eastl::scoped_ptr<void> and eastl::scoped_array<void>.
Port benchmarks to use std::unordered_map instead of std::hash_map.
Can now call functions where return type is implicity converitble to the
return type specified in the function template
Implemented missing functions for operator=, such as operator=(Functor&&)
operator bool() is now explicit so function cannot be implicit convertible
to bool in wierd unintended places (eg. vectoreastl::function).
SFINAE away the templated construct/operator= so it is not a candidate in
the overload set
eastl::function && eastl::fixed_function now share a common implementation
eastl::invoke_result && eastl::is_invocable are now C++14 compliant
can be used in an unevaluated context
typename F is no longer required to be a Callable
Added EASTL_CPP17_INLINE_VARIABLE macro to declare a variable as inline
eastl::pair first element constructor overload can not be toggled to give users the opportunity to fix their code before the overloads are removed in a future release.
Look at the feature define: EASTL_ENABLE_PAIR_FIRST_ELEMENT_CONSTRUCTOR
eastl::string_map and eastl::string_hash_map optimizations to avoid implicit eastl::string conversions.
eastl::ring_buffer fixes when using an underlying container with a large stack memory requirement that it allocates the required heap allocation from the containers allocator -- not the default EASTL allocator instance.
3.10.00
5 years ago
eastl::span implementation for C++20.
eastl::variant get_if bug fix for requesting the incorrect held type or when passing a nullptr.
eastl::string substr(), left(), right() return a copy of this->get_allocator()
eastl::string changed SSOSize variable name from mnSize to mnRemainingSize to
better signify what type of data the variable holds
Added iterator vector::erase_first_unsorted(const T& val) and the reverse equivalent, iterator
vector::erase_last_unsorted(const T& val). These allow for erasing the first found value matching element, as a
convenience function. The container is considered unsorted after the operation.
Implemented eastl::basic_string constructor and assignment operator overloads for eastl::basic_string_view.
Resolved a bug in the uint8_t specialization of radix_sort_impl that was detected by adding verification to a sorting test.
eastl::fixed_function fixes to ensure closure destructors run correctly.
eastl::optional copy-construction fixes for complex types.
eastl::optional move-only type fixes.
3.09.00
6 years ago
eastl::any fix to correctly decay reference types.
eastl::fixed_hash_map/eastl::fixed_hash_multimap fixes when a user requests to clear the bucket array hashtable rehashing was disabled with a default bucket count of 1. The behaviour now for fixed_hash_map (and fixed_hash_multimap) is the clear buckets request resets the containter to use the SBO and the default bucket count.
Added 'eastl::is_literal_type_v' type trait.
Added 'eastl::is_convertible_v' type trait.
eastl::string SSO capacity is now optimal
HeapLayout now uses 1 pointer and 2 size_t instead of 3 pointers
SSO rework to now use the maximum number of bytes possible, 23 bytes of SSO on 64bit, was 14 bytes before
set_capacity() will now shrink to SSO if the new capacity is within SSO limits
substr(), left(), right() now properly return a basic_string with a default constructed allocator
when inserting yourself into yourself reduced allocations from 1 to 0 or 1.
is_sso() function implemented that returns true if the current string is an SSO string
natvis updated
eastl::fixed_substring && eastl::fixed_string updated due to eastl::string changes
eastl::vector::emplace_back() now returns a reference to the emplaced element
eastl::variant::operator=(T) conversion assignment operator fixed an issue due to a incorrect conjunction expression that caused the operator to be removed via SFINAE.
eastl::intrusive_ptr now supports move semantics.
eastl::is_trivially_copyable fixes to use the proper compiler intrinsics.
eastl::deque::shrink_to_fit() implemented.
3.08.00
6 years ago
Fully qualifying call to move in algorithms "remove_copy_if".
Implemented the following new C++17 memory algorithms:
uninitialized_default_construct
uninitialized_default_construct_n
uninitialized_value_construct
uninitialized_value_construct_n
Implemented the eastl::remove_cvref type trait.
eastl::string_view hash fixes for both char and wchar types
eastl::optional compiler fixes when building with exceptions enabled
Implemented eastl::unordered_map/map/hash_map "try_emplace" and "insert_or_assign".
Removing deprecated "reset" member function from containers.
string_view string compare fixes.
eastl::optional storage now type aligned.
eastl::string_view no longer crashes when passed a nullptr via the 'const char*' conversion constructor.
Added static_asserts to eastl::variant visit function to improve diagonistic message when variant instances are not provided.
Added noexcept decorations to eastl::vector and eastl::string.
eastl::any::swap fixes to ensure destructors are being called correctly.
eastl::rbtree and eastl::hashtable insert and emplace optimizations to reduce the allocation overhead for object that act as a handle to a heap allocation (ie. eastl::string). Breaking change: rbtree/hashtable backed containers now correct forbid inserting pointers with that lose cv-qualifers.
Adding eastl::string_view visualizer to EASTL natvis.
3.07.02
6 years ago
Implemented eastl::variant.
Implemented eastl::fixed_function.
Implemented eastl::apply for unpacking tuples into callable arguments.
Implemented eastl::piecewise_construct constructor overload for eastl::pair.
Implemented eastl::reference_wrapper.
Implemented eastl::invoke for pointer-to-member, pointer-to-member-function and eastl::reference_wrapper types.
Implemented vector::insert updates that return an iterator to the beginning of the inserted range.
Implemented eastl::tuple_size_v alias.
Removed non-variadic template code paths in eastl::function.
Implemented eastl::is_invocable.
Fixed eastl::common_type<void, void> and updated eastl::common_type to decay result type based on defect #2141