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