I see a lot of code at work where people use emplace and emplace_back with a temporary object, like this:
struct A {
A::A(int, int);
};
vector v;
v
I just want to add
There is a great 5 minutes lightning talk about copy elision and RVO from Jon Kalb https://youtu.be/fSB57PiXpRw
Also, you might get different results using different compilers gcc, clang or icc
See compiler explorer, try different compilers and settings and see for yourself
https://godbolt.org/g/Yjo9qA