AK: Conform SimpleIterator to the random access iterator requirements

This requires pulling in some of the STL, but the result is that our
iterator is now STL Approved ™️ and our containers can be
auto-conformed to Swift protocols.
This commit is contained in:
Andrew Kaster 2024-08-05 23:45:36 -06:00 committed by Andrew Kaster
commit 756ef2c722
Notes: github-actions[bot] 2024-08-17 23:45:35 +00:00
6 changed files with 109 additions and 26 deletions

View file

@ -23,6 +23,12 @@ TEST_CASE(compile_time_constructible)
static_assert(array.size() == 4);
}
TEST_CASE(conforms_to_iterator_protocol)
{
static_assert(std::random_access_iterator<Array<int, 8>::Iterator>);
static_assert(std::random_access_iterator<Array<int, 8>::ConstIterator>);
}
TEST_CASE(compile_time_iterable)
{
constexpr Array<int, 8> array = { 0, 1, 2, 3, 4, 5, 6, 7 };