Boost logo

Boost :

Subject: Re: [boost] [Multiarray] & [Range] MSVC/gcc warning: returning address of local variable or temporary
From: David Abrahams (dave_at_[hidden])
Date: 2008-11-12 21:25:52


on Wed Nov 12 2008, Thorsten Ottosen <thorsten.ottosen-AT-dezide.com> wrote:

> David Abrahams skrev:
>> on Wed Nov 12 2008, Thorsten Ottosen <thorsten.ottosen-AT-dezide.com> wrote:
>>
>>> Do you mean that I can detect the return type of operator[] at
>>> compile-time and do correct forwarding?
>>
>> No, I mean you can detect when the return type of operator[] is the
>> same as the reference type. Maybe if it isn't, you could turn off
>> whatever you're doing with enable_if or something. Why is
>> iterator_range using the iterator's operator[], anyway?
>
> It seems very natural to be able to index a random access range,
> doesn't it.

No comment.

> And how else would you implement that?

The exact same way we implement it in iterator_facade.

http://www.boost.org/doc/libs/1_37_0/libs/iterator/doc/iterator_facade.html#operator

> Anyway, I guess I could do that check. Is it illegal for the iterators
> reference type to be a non-reference?

No, but in C++03 that makes them input iterators or output iterators,
but not forward iterators.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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