This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/40486] [c++0x] rvalue-references no longer bind to lvalues



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]