Я вижу много кода на работе, где люди используют emplace и emplace_back с временным объектом, например так:
struct A {
A::A(int, int);
};
vector<A> v;
vector<A>.emplace_back(A(1, 2));
Я знаю, что весь смысл emplace_back заключается в возможности передавать параметрынапрямую, как это:
v.emplace_back(1, 2);
Но, к сожалению, это не ясно для некоторых людей.Но не будем останавливаться на этом ....
Мой вопрос: может ли компилятор оптимизировать это и пропустить создание и копирование?Или я действительно должен попытаться исправить эти случаи?
Для справки ... мы работаем с C ++ 14.