> On 12 Sep 2018, at 07:06, Akim Demaille <[email protected]> wrote:
> 
> Here is my updated proposal.
> 
> commit 4ba0a5eac0953e308128af23324103f9589dc37e
> Author: Akim Demaille <[email protected]>
> Date:   Sun Aug 12 18:05:47 2018 +0200
> 
>    lalr1.cc: support move semantics
> 
>    Modern C++ (i.e., C++11 and later) introduced "move only" types: types such
>    as std::unique_ptr<T> that can never be duplicated.  They must never be
>    copied (by assignments and constructors), they must be "moved".  The
>    implementation of lalr1.cc used to copy symbols (including their semantic
>    values).  This commit ensures that values are only moved in modern C++, yet
>    remain compatible with C++98/C++03.

Hopefully copy only types can still be used. So say:

C++11 introduced "move only" types that can never be duplicated and must be 
moved, for example, std::unique_ptr<T>. This commit ensures that lalr1.cc 
invokes such move operators when available, that is, when compiled using C++11 
or later, and when defined for the involved types. When compiled using 
C++98/C++03, the behavior is as before.


Reply via email to