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

@ -16,6 +16,19 @@ TEST_CASE(constexpr_default_constructor_is_empty)
static_assert(span.is_empty(), "Default constructed span should be empty.");
}
TEST_CASE(conforms_to_iterator_protocol)
{
static_assert(std::random_access_iterator<Span<int>::Iterator>);
static_assert(std::random_access_iterator<Span<int>::ConstIterator>);
static_assert(std::random_access_iterator<Span<int const>::Iterator>);
static_assert(std::random_access_iterator<Span<int const>::ConstIterator>);
static_assert(std::random_access_iterator<Bytes::Iterator>);
static_assert(std::random_access_iterator<Bytes::ConstIterator>);
static_assert(std::random_access_iterator<ReadonlyBytes::Iterator>);
static_assert(std::random_access_iterator<ReadonlyBytes::ConstIterator>);
}
TEST_CASE(implicit_conversion_to_const)
{
constexpr Bytes bytes0;