Boost logo

Boost :

Subject: Re: [boost] Is there something like shared_array<T> but with iterators?
From: Thijs (M.A.) van den Berg (thijs_at_[hidden])
Date: 2014-10-14 11:33:12


On Oct 14, 2014, at 5:00 PM, david.hagood_at_[hidden] wrote:

> I am doing signal processing, and in order to avoid data copies I need
> something that:
> 1) can adopt a buffer of data (e.g. take ownership of a T*)
> 2) Release that buffer via an appropriate method (e.g. take a deallocator
> object).
> 3) Provide operator[] over that buffer
> 4) provide shared ownership semantics
>
> So far, that's shared_array<> to a T [sic]
>
> However, I need one more thing:
>
> 5) provide iterator support (begin(), end(), cbegin(), cend())
>
> The current shared_array<> doesn't provide that - is there anything else
> that does?
>
Could you go and use an overloaded C++11 non-member std::begin( shared_array<> .. ) instead of the member .begin()?

If so then you could try to write a simple generic non-member begin() for the shared_array<> (and ask if it can be added to boost)?

This is a good example of why the C++11 non-member begin() syntax gives more flexibility.


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