This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ PATCH to add auto return type deduction with -std=c++1y


On Wed, 28 Mar 2012, Marc Glisse wrote:

On Sun, 25 Mar 2012, Marc Glisse wrote:

- a first goal is simple functions, with a single return statement (which may even often be the only statement).

After playing with it a bit, I am not sure how to use it in the simple forwarding case:


T f(int);
auto g(int i){return f(i);}

If T is a reference, this does a copy.

auto&& g(int i){return f(i);}

Now if T is not a reference, this returns a reference to a destroyed temporary.

I haven't given this idea much thought, but here goes:


The main issue seems to be that "auto&&" deduction gives a dangerous unusable answer on a temporary. Well, let's change that to make the deduction be the same as plain "auto" in that case (how different does that make it from decltype?). Sure, it requires some more complicated wording. But to users, it could actually be more intuitive as auto&& would remain a do-what-I-mean perfect forwarder. And plain "auto" would remain compatible with lambdas.

--
Marc Glisse


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]