Boost logo

Boost :

Subject: Re: [boost] Review Request : Boost.Range Extension
From: Michel Morin (mimomorin_at_[hidden])
Date: 2012-05-30 18:27:57


Akira Takahashi wrote:
>> [Infinite ranges]
>> Boost.Iterator now has function_input_iterator which can be used
>> to represent infinite ranges. IMHO, function_input_iterator is not so
>> flexible and its implementation has some flaw:
>>   https://svn.boost.org/trac/boost/ticket/5825
>> Oven's infinite range does not have such an issue, right?
>
> iteration() function is OvenToBoost's infinite range.
> This function's main purpose is makes number of sequence. But,
> iteration() function can apply many case with other Range adaptors.
> Past-the-end condition can specified taken/taken_while (and other adaptors).
<snip>

Thanks for the examples.
I would like `nonstop` and `generation` as well to be included in
OvenToBoost!

One question about implementation of `single`:

  template <class T>
  inline iterator_range<const T*> single(const T& x)
  {
      return make_iterator_range(boost::addressof(x), boost::addressof(x) + 1);
  }

I'm concerned about taking one-past-the-end pointer of non-array object.
Is this guaranteed to work?
If so, could you tell me which part of the Standard guarantee it?

Regards,
Michel


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk