Implement LWG#2353: std::next is over-constrained
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252407 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
// template <InputIterator Iter>
|
||||
// Iter next(Iter x, Iter::difference_type n = 1);
|
||||
|
||||
// LWG #2353 relaxed the requirement on next from ForwardIterator to InputIterator
|
||||
|
||||
#include <iterator>
|
||||
#include <cassert>
|
||||
|
||||
@@ -34,11 +36,13 @@ test(It i, It x)
|
||||
int main()
|
||||
{
|
||||
const char* s = "1234567890";
|
||||
test(input_iterator<const char*>(s), 10, input_iterator<const char*>(s+10));
|
||||
test(forward_iterator<const char*>(s), 10, forward_iterator<const char*>(s+10));
|
||||
test(bidirectional_iterator<const char*>(s), 10, bidirectional_iterator<const char*>(s+10));
|
||||
test(random_access_iterator<const char*>(s), 10, random_access_iterator<const char*>(s+10));
|
||||
test(s, 10, s+10);
|
||||
|
||||
test(input_iterator<const char*>(s), input_iterator<const char*>(s+1));
|
||||
test(forward_iterator<const char*>(s), forward_iterator<const char*>(s+1));
|
||||
test(bidirectional_iterator<const char*>(s), bidirectional_iterator<const char*>(s+1));
|
||||
test(random_access_iterator<const char*>(s), random_access_iterator<const char*>(s+1));
|
||||
|
Reference in New Issue
Block a user