Heads-up to those who don't monitor the base channel on slack. Please reserve emplace_back in sequence containers for those times when you really are passing arguments to an object's ctor. Use push_back for times when you already have an instance of the thing you want to put in the container. To be concrete, do this:
std::vector<Foo> foos;
Foo some_foo;
foos.push_back(std::move(some_foo));
Not this:
std::vector<Foo> foos;
Foo some_foo;
foos.emplace_back(std::move(some_foo));
I've seen the latter several times recently, and it always reads wrong to me. It turns out I'm not alone.
Also see:
https://abseil.io/tips/112, which suggests that push_back should mostly be preferred over emplace_back when it can be used.
Thank you.