根据这些问题以及这里的回答,我知道使用C++14的
话虽如此,调用这个函数是否更好呢?
std::make_unique
比直接使用emplace_back(new X)
更可取。话虽如此,调用这个函数是否更好呢?
my_vector.push_back(std::make_unique<Foo>("constructor", "args"));
或者my_vector.emplace_back(std::make_unique<Foo>("constructor", "args"));
也就是说,当我添加一个由std::make_unique
构造的std::unique_ptr
时,我应该使用push_back
还是emplace_back
呢?
==== 编辑 ====
为什么呢?c: <--(微笑)
push_back
和emplace_back
是必然相同的。 - Cheers and hth. - Alfunique_ptr
上有自定义删除器,那么情况可能会发生变化。 - Yakk - Adam Nevraumont