Random emplace_back hate: I really dislike how you can't use it for objects that you'd normally use aggregate initialization for.
See https://godbolt.org/z/6qW7q3
struct SimpleData
{
int a;
double b;
};
SimpleData someData = {1, 2.0}; // ok
std::vector<SimpleData> data;
// Why can I not do this?
data.emplace_back(1, 2.0);
replies(3):