A StreamRange
<T>
is a range of StatusOr
<T>
where the end-of-stream is indicated by a non-OK Status
.
Callers can iterate the range using its begin()
and end()
members to access iterators that will work with any normal C++ constructs and algorithms that accept Input Iterators.
Callers should only consume/iterate this range.
Example: Iterating a range of 10 integers
// Some function that returns a StreamRange<int>
StreamRange<int> MakeRangeFromOneTo(int n);
StreamRange<int> sr = MakeRangeFromOneTo(10);
for (StatusOr<int> const& x : sr) {
if (!x) {
std::cerr << "Fail: " << x.status() << "\n";
} else {
std::cout << *x << "\n";
}
}
Constructors
StreamRange(StreamRange const &)
Move-only
Parameter | |
---|---|
Name | Description |
|
StreamRange const &
|
StreamRange(StreamRange &&)
Move-only
Parameter | |
---|---|
Name | Description |
|
StreamRange &&
|
StreamRange()
Default-constructs an empty range.
Operators
operator=(StreamRange const &)
Move-only
Parameter | |
---|---|
Name | Description |
|
StreamRange const &
|
Returns | |
---|---|
Type | Description |
StreamRange & |
operator=(StreamRange &&)
Move-only
Parameter | |
---|---|
Name | Description |
|
StreamRange &&
|
Returns | |
---|---|
Type | Description |
StreamRange & |
Functions
begin()
Returns | |
---|---|
Type | Description |
iterator |
end()
Returns | |
---|---|
Type | Description |
iterator |
Type Aliases
value_type
Alias Of:
StatusOr< T >
iterator
Alias Of:
IteratorImpl< value_type >
difference_type
Alias Of:
typename iterator::difference_type
reference
Alias Of:
typename iterator::reference
pointer
Alias Of:
typename iterator::pointer
const_reference
Alias Of:
typename iterator::const_reference
const_pointer
Alias Of:
typename iterator::const_pointer