You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Framework/AzCore/Tests/AZStd
lumberyard-employee-dm f3e9e41f4f
Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102)
* Adding partial implementation of C++20 concepts and range functions for AZStd::span

The new concepts to discovered existing issues with the PathIterator and deque::iterator classes
PathIterator wasn't properly an input_iterator and therefore the Path classes weren't a range due to an incorrect const_iterator alias
The deque::iterator classes was missing the operator+ friend function that accepted a (ptrdiff_t, deque::iterator) to fulfill the random_access_iterator concepts

The AZStd implementations of (uninitialized_)copy(_n), (uninitialized_)move(_n) and (uninitialized_)file(_n) have been optimized to use memcpy and memset based on fulfilling the contiguous_iterator concept

Fixed invalid AZStd::vector inserts in FrameGraphExecuter.cpp and SliceditorEntityOwnershipService.cpp
The code was trying to copy the underlying addresses for vector<unique_ptr> to a vector<raw pointer> using insert, which it was doing by using memcpy.

relates to #6749

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed the `fixed_vector` emplace function to not move initialized
elements using uninitialized_move.

This was causing initialized elements of the fixed_vector to be
overwritten with the element at the emplace position.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed clang warnings about variables that are set, but never read

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the `az_has_builtin_is_constant_evaluated` define to not have
"()" as is not a macro.

This helps prevent users from using `az_has_builtin_is_constant_evaluated`
define in a situation where they want to know if the function is being
evaluated in a compile time context.
In that case they need to use the `az_builtin_is_constant_evaluated()`
macro (which of course looks quite similiar) but does not have the word
"has" in it..

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the AZStd span class to be C++20 compliant.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Changed phrase "DoesNotCompiles" to be more grammatically correct.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added more unit test for AZStd span

Fixed an the the return type of the subspan template overload to account
for the source span having a dynamic extent.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removed unused variable from span unit test.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
..
Algorithms.cpp Code/Framework/AzCore 4 years ago
Allocators.cpp Added a max_size function to all AZStd container style allocator functions (#4106) 4 years ago
Any.cpp Android fixes 4 years ago
Atomics.cpp Modernization + AZStd::function compare fix. (#3680) 4 years ago
Bitset.cpp Modernization + AZStd::function compare fix. (#3680) 4 years ago
ChronoTests.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
ConceptsTests.cpp Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102) 4 years ago
ConcurrentAllocators.cpp Added a max_size function to all AZStd container style allocator functions (#4106) 4 years ago
ConcurrentContainers.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
CreateDestroy.cpp Converted the AZStd implementations of unintialized construct to use std (#2843) 4 years ago
DequeAndSimilar.cpp Fixed the emplace function implementations for stack and queue (#2657) 5 years ago
Examples.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
FunctionalBasic.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
FunctorsBind.cpp Modernization + AZStd::function compare fix. (#3680) 4 years ago
Hashed.cpp Changes GTEST_OS_SUPPORTS_DEATH_TEST to the right define which is GTEST_HAS_DEATH_TEST 4 years ago
Invoke.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Iterators.cpp Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102) 4 years ago
Lists.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
ListsFixed.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
ListsIntrusive.cpp Code/Framework/AzCore 4 years ago
LockFreeQueues.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
LockFreeStacks.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
LockTests.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Math.cpp Add AZStd::lerp math function, based on C++20 (#3468) 4 years ago
Numeric.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Optional.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Ordered.cpp Changes GTEST_OS_SUPPORTS_DEATH_TEST to the right define which is GTEST_HAS_DEATH_TEST 4 years ago
Pair.cpp Code/Framework 4 years ago
Parallel.cpp Removes Driller from AzCore 4 years ago
RangesTests.cpp Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102) 4 years ago
ScopedLockTests.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
SetsIntrusive.cpp Code/Framework/AzCore 4 years ago
SmartPtr.cpp Modernization + AZStd::function compare fix. (#3680) 4 years ago
SpanTests.cpp Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102) 4 years ago
String.cpp GCC Support for Linux 4 years ago
Tuple.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
TypeTraits.cpp Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102) 4 years ago
UserTypes.h remove unnecessary ALIGN macros 4 years ago
Variant.cpp more fixes for Code 4 years ago
VariantSerialization.cpp Cleanup SerializeContext.h pt.1 (#4264) 4 years ago
VectorAndArray.cpp fix dev break. AZStd::fixed_vector cannot be constexp error (#5995) 4 years ago