【发布时间】:2016-11-14 08:18:29
【问题描述】:
给定一个结构:
struct S {
int x;
int y;
}
为什么标准允许我们这样做:
std::vector<S> vec;
vec.emplace_back(1, 2);
但不允许这样做:
auto ptr = std::make_unique<S>(1, 2);
?
【问题讨论】:
-
对我很好coliru.stacked-crooked.com/a/7c54feda67017bf1(我必须向结构添加一个构造函数,但仅此而已)
-
不,两者都是not allowed。如果你提供了一个演员(
S::S(int, int)),那么两者都是fine。 -
@Pumkko 我的意思是没有 ctor 的简单结构 :)
标签: c++ unique-ptr emplace