Opened 6 years ago
Last modified 6 years ago
#12374 new Bugs
doku bug boost::adaptors::sliced
| Reported by: | Owned by: | Neil Groves | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | range | 
| Version: | Boost 1.61.0 | Severity: | Problem | 
| Keywords: | documentation | Cc: | joakimas@… | 
Description
Precondition: 0 <= n && n <= m && m < distance(rng)
must be
Precondition: 0 <= n && n <= m && m =< distance(rng)
example:
std::vector<int> vec; vec.push_back(3); auto wholeVectorSlice=boost::adaptors::slice(vec,0,vec.size()); distance(rng)==1
Otherwise it woudln't be possible to include the last element of the input range in the slice.
Change History (2)
comment:1 by , 6 years ago
| Component: | Documentation → range | 
|---|---|
| Owner: | changed from to | 
comment:2 by , 6 years ago
| Cc: | added | 
|---|
  Note:
 See   TracTickets
 for help on using tickets.
    

I noticed this too when looking at the documentation. Why shouldn't we be allowed to include the last element when slicing? I guess this might be a problem only with the documentation.
It seems like a more useful precondition would be
In addition, the "returns" part of the text says the result is "make_range(rng, n, m)" but I fail to find any useful documentation on what "make_range" is.
For reference, I have been looking at this page: http://www.boost.org/doc/libs/1_61_0/libs/range/doc/html/range/reference/adaptors/reference/sliced.html