GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::sentinel_for(3) C++ Standard Libary std::sentinel_for(3)

std::sentinel_for - std::sentinel_for


Defined in header <iterator>
template<class S, class I>


concept sentinel_for =
std::semiregular<S> && (since C++20)
std::input_or_output_iterator<I> &&


__WeaklyEqualityComparableWith<S, I>;


The sentinel_for concept specifies the relationship between an
input_or_output_iterator type and a semiregular type whose values denote a range.
The exposition-only concept __WeaklyEqualityComparableWith is described in
equality_comparable.


Semantic requirements


Let s and i be values of type S and I, respectively, such that [i, s) denotes a
range. sentinel_for<S, I> is modeled only if:


* i == s is well-defined.
* If bool(i != s) then i is dereferenceable and [++i, s) denotes a range.
* std::assignable_from<I&, S> is either modeled or not satisfied.


The domain of == can change over time. Given an iterator i and sentinel s such that
[i, s) denotes a range and i != s, [i, s) is not required to continue to denote a
range after incrementing any iterator equal to i (and so i == s is no longer
required to be well-defined after such an increment).


A sentinel type and its corresponding iterator type are not required to model
equality_comparable_with, because the sentinel type may not be comparable with
itself, and they are not required to have a common reference type.


It has been permitted to use a sentinel type different from the iterator type in the
range-based for loop since C++17.


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG 3453 C++20 semantic requirements for sentinel_for were too strengthened
loose for ranges::advance

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.