|
Boost : |
Subject: Re: [boost] [range] Proposal: addition of front(), back(), at(), operator[]
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2014-03-23 17:33:36
Hi,
Neil Groves wrote:
> iterator_range already has front() and back() functions. These are not part
> of the Range Concept since we want to be able to model them
> non-intrusively. The iterator_range and sub_range classes can be used to
> wrap other iterator pairs or ranges and provide most of the member
> functions that you are suggesting.
Thanks for the tip. However I rather see those functions as algorithms,
not a part of the Concept. They musn't be modeled intrusively, just like
any other Boost.Range algorithm.
So in the case of iterator_range the use case would look like this:
boost::make_iterator_range(range).front();
boost::make_iterator_range(range).back();
boost::make_iterator_range(range)[index];
I'd say it's less intuitive/readable/convenient than:
boost::front(range);
boost::back(range);
boost::at(range);
And the readability is what I wanted to achieve but ok, the
functionality is there. And this way the implementation of operator[] is
straightforward. Still, I prefer my way :)
Regards,
Adam
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk