https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114388

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #5)
> In C++98 the const B& is an lvalue, and in C++11 the B&& is an xvalue which
> is a glvalue. Either way, it's correct to treat it as a glvalue of
> polymorphic type and evaluate it.

Or more precisely, in C++98 it's an lvalue and the rule is that lvalues are
evaluated.
In C++11 it's an xvalue which is a glvalue, and the rule is that glvalues are
evaluated.

So even though N3055 isn't a DR, that doesn't matter. The behaviour changed
with DR 616 not with N3055.

Reply via email to