
Hi Ion and JoaquĆn, This issue is related to node-based containers. I think you both have added emplace() to provide efficient in-place construction. However, I often encounter a situation where emplace() is not sufficient for me. The situation is characterized by the need to calculate the key after the mapped value (a heavy object) has been placed in the pair. To calculate the key the mapped value needs to be modified (the key is calculated as a side-effect). I therefore suggest that we add a new function: typedef ... map; map m; map::node_ptr p = m.get_node_ptr(<like emplace, but only for constructing the mapped value>); p->pair.first = modify( p->pair.second ); m.insert( boost::move(p) ); Thoughts? -Thorsten