On Mon, Nov 28, 2011 at 2:42 PM, Marc Glisse <marc.glisse@xxxxxxxx> wrote: > A classic. insert takes a pair<const Key,Value> whereas make_pair produces a pair<Key,Value>, so the first thing the compiler has to do is convert one into the other, ie copy. The set of circumstances where a compiler is allowed to elide a copy is extremely restrictive. > Really... how restrictive exactly? Would you take issue with anything stated in http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ Thx, - Rob.