以下是扩展版本,它可以正常运行,但我想使用初始化列表。
vector<shared_ptr<Foo>> inputs = {
make_shared<Foo>("foo"),
make_shared<Foo>("bar"),
make_shared<Foo>("baz")
};
所以我尝试了类似于以下的方法
vector<shared_ptr<Foo>> inputs2 = {
{ "foo" },
{ "bar" },
{ "baz" }
};
还有两种用法,一种是使用双括号,一种是不使用括号,即{{ "foo" }}
和"foo"
。
std::shared_ptr<Foo> foo = { "foo" };
这也无法编译,所以我认为这不是向量的问题,而是使用初始化列表初始化 shared_ptr 的问题。