bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automatially move from $n (was: C++11 move semantics)


From: Frank Heckenbach
Subject: Re: Automatially move from $n (was: C++11 move semantics)
Date: Sat, 15 Sep 2018 22:56:33 +0200

Hans Åberg wrote:

> If I write:
> 
> A& h(A& a) {
>   return a;
> }
> 
> A&& h(A&& a) {
>   return std::move(a);
> }

h seems like a NOP.

> int main() {
>   A a, b;
> 
>   b = std::move(h(a));
>   b = std::move(h(std::move(a)));

You don't need "std::move" twice here.

>   return EXIT_SUCCESS;
> }
> 
> Then if A only has copy assignment, that will be used, but if has
> that and move assignment or only move assignment, then move
> assignment will be used. No copying occurs with copy elision.

You don't need h at all.

Simply "b = std::move (a);" will do the same. All it does is convert
a to an rvalue reference. If A has a move assignment operator, this
will be chosen, if it doesn't but a copy assignment operator, that
one will be chosen. That's all standard C++ behaviour.

> Isn't that what you want?

What I want (or actually have, since I imeplented it :) is a way to
make Bison apply std::move automatically.

Regards,
Frank



reply via email to

[Prev in Thread] Current Thread [Next in Thread]