On Wed, 8 Aug 2012, François Dumont wrote:

On 08/08/2012 03:39 PM, Paolo Carlini wrote:
On 08/08/2012 03:15 PM, François Dumont wrote:
I have also introduce a special std::pair constructor for container usage so that we do not have to include the whole tuple stuff just for associative container implementations.
To be clear: sorry, this is not an option.

Paolo.

Then I can only imagine the attached patch which require to include tuple when including unordered_map or unordered_set. The std::pair(piecewise_construct_t, tuple<>, tuple<>) is the only constructor that allow to build a pair using the default constructor for the second member.

I agree that the extra constructor would be convenient (I probably would have gone with pair(T&&,__default_construct_t), the symmetric version, and enough extra constructors to resolve all ambiguities). Maybe LWG would consider doing something.

+         __p = __h->_M_allocate_node(std::piecewise_construct,
+                                     std::make_tuple(__k),
+                                     std::make_tuple());

Don't you want cref(__k)? It might save a move at some point.

--
Marc Glisse

Reply via email to