[Bug c++/40486] [c++0x] rvalue-references no longer bind to lvalues
dragan at plusplus dot co dot yu
gcc-bugzilla@gcc.gnu.org
Thu Jun 18 14:19:00 GMT 2009
------- Comment #4 from dragan at plusplus dot co dot yu 2009-06-18 14:19 -------
(In reply to comment #3)
> Also, n2844 and Doug's patch don't update std::make_pair, so it won't accept
> lvalues according to the current draft. That needs fixing too.
>
If you are referring to:
template <MoveConstructible T1, MoveConstructible T2>
pair<V1, V2> make_pair(T1&& x, T2&& y);
I'm not into concepts yet (the reason being obvious :-), but I think
T1,T2 can be lvalue-references. Unfortunately, in this case, under
reference collapsing rules, this _will_ accept lvalues and perfectly forward
them to the pair constructor.
Am I off the track here? As for deducing pair template parameters as described
in WP, I can only see symptoms of "coding under influence" :-D
I say "unfortunately" above, because I don't like the syntax (namely &&)
used to express a function that can take both lvalues and rvalues.
I have objected on comp.std.c++, but got no real support.
Also, about move and forward. IMHO, those presented in the patch
seem fine. Did I understand correctly that the only thing you
are waiting is acceptance into WP? I guess the functionality will
remain the same. It might be they have issues with concepts.
I'm only guessing, so I apologize if you have some _solid_ information.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40486
More information about the Gcc-bugs
mailing list