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: Hans Åberg
Subject: Re: Automatially move from $n (was: C++11 move semantics)
Date: Sat, 15 Sep 2018 22:01:24 +0200

> On 15 Sep 2018, at 21:57, Frank Heckenbach <address@hidden> wrote:
> 
> Hans Åberg wrote:
> 
>>>> The idea would be to write something equivalent to
>>>> return make_unique<foo>($1, $2, $3);
>>>> and the Bison writes something like
>>>> $$ = std::move(action_k(...return make_unique<foo>($1, $2, $3);...))
>>> 
>>> I don't follow you. What is action_k, and how would that cause
>>> moving from $1 etc.?
>> 
>> Action k in the switch statement.
> 
> Huh? I really don't get what your proposed syntax is supposed to
> mean. Is action_k supposed to be a lambda (what else could appear in
> an expression and contain a statement inside)? What would it do?

Just produce an r-value.

>> Move operators were originally designed to avoid copying in returns.
> 
> I don't know if this was so or not originally, but I'm talking about
> moving arguments, not return values. That's what I've been saying
> the whole time, including the thread subject! Moving the return
> value is no big problem most of the time: "$$ = make_unique ..."
> works without any std::move because a function result(*) is
> automatically an rvalue.

The idea is to create an r-value situation, which then translates into a move 
assignment.




reply via email to

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