Differential D101396 Diff 344185 libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
Changeset View
Changeset View
Standalone View
Standalone View
libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
Show All 16 Lines | |||||
#include <iterator> | #include <iterator> | ||||
using iterator = std::string::iterator; | using iterator = std::string::iterator; | ||||
using const_iterator = std::string::const_iterator; | using const_iterator = std::string::const_iterator; | ||||
using reverse_iterator = std::string::reverse_iterator; | using reverse_iterator = std::string::reverse_iterator; | ||||
using const_reverse_iterator = std::string::const_reverse_iterator; | using const_reverse_iterator = std::string::const_reverse_iterator; | ||||
using value_type = char; | using value_type = char; | ||||
static_assert(std::random_access_iterator<iterator>); | static_assert(std::contiguous_iterator<iterator>); | ||||
static_assert(std::indirectly_writable<iterator, value_type>); | static_assert(std::indirectly_writable<iterator, value_type>); | ||||
static_assert(std::sentinel_for<iterator, iterator>); | static_assert(std::sentinel_for<iterator, iterator>); | ||||
static_assert(std::sentinel_for<iterator, const_iterator>); | static_assert(std::sentinel_for<iterator, const_iterator>); | ||||
static_assert(!std::sentinel_for<iterator, reverse_iterator>); | static_assert(!std::sentinel_for<iterator, reverse_iterator>); | ||||
static_assert(!std::sentinel_for<iterator, const_reverse_iterator>); | static_assert(!std::sentinel_for<iterator, const_reverse_iterator>); | ||||
static_assert(std::sized_sentinel_for<iterator, iterator>); | static_assert(std::sized_sentinel_for<iterator, iterator>); | ||||
static_assert(std::sized_sentinel_for<iterator, const_iterator>); | static_assert(std::sized_sentinel_for<iterator, const_iterator>); | ||||
static_assert(!std::sized_sentinel_for<iterator, reverse_iterator>); | static_assert(!std::sized_sentinel_for<iterator, reverse_iterator>); | ||||
static_assert(!std::sized_sentinel_for<iterator, const_reverse_iterator>); | static_assert(!std::sized_sentinel_for<iterator, const_reverse_iterator>); | ||||
static_assert(std::random_access_iterator<const_iterator>); | static_assert(std::contiguous_iterator<const_iterator>); | ||||
static_assert(!std::indirectly_writable<const_iterator, value_type>); | static_assert(!std::indirectly_writable<const_iterator, value_type>); | ||||
static_assert(std::sentinel_for<const_iterator, iterator>); | static_assert(std::sentinel_for<const_iterator, iterator>); | ||||
static_assert(std::sentinel_for<const_iterator, const_iterator>); | static_assert(std::sentinel_for<const_iterator, const_iterator>); | ||||
static_assert(!std::sentinel_for<const_iterator, reverse_iterator>); | static_assert(!std::sentinel_for<const_iterator, reverse_iterator>); | ||||
static_assert(!std::sentinel_for<const_iterator, const_reverse_iterator>); | static_assert(!std::sentinel_for<const_iterator, const_reverse_iterator>); | ||||
static_assert(std::sized_sentinel_for<const_iterator, iterator>); | static_assert(std::sized_sentinel_for<const_iterator, iterator>); | ||||
static_assert(std::sized_sentinel_for<const_iterator, const_iterator>); | static_assert(std::sized_sentinel_for<const_iterator, const_iterator>); | ||||
static_assert(!std::sized_sentinel_for<const_iterator, reverse_iterator>); | static_assert(!std::sized_sentinel_for<const_iterator, reverse_iterator>); | ||||
static_assert(!std::sized_sentinel_for<const_iterator, const_reverse_iterator>); | static_assert(!std::sized_sentinel_for<const_iterator, const_reverse_iterator>); |