------- Comment #5 from jwakely dot gcc at gmail dot com 2009-06-18 15:39 ------- (In reply to comment #4) > (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.
Ah, OK, I hadn't understood that correctly, thanks for the explanation. > 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'm not sure, so I'll take your word for it :-) > 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. Yes, I was just pointing out that the WP currently doesn't have the changes to std::forward and std::move - I don't know why, or what the final versions might look like. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40486