我试图初始化一个 std::vector<std::unique_ptr<std::string>>
的方式相当于 Bjarne Stroustrup's C++11 FAQ的一个例子:
using namespace std;
vector<unique_ptr<string>> vs { new string{"Doug"}, new string{"Adams"} }; // fails
unique_ptr<string> ps { new string{"42"} }; // OK
我看不出这种语法为什么会失败。这种初始化容器的方法有什么问题吗?
编译器的错误消息非常巨大; 我发现的相关片段如下:
/usr/lib/gcc-fast/lib/gcc/i686-linux-gnu/4.7.0/. ./. ./. ./. ./. ./include/c + +/4.7.0 /bits/stl_construct.h:77:7: error: no matching function for call to
'std::unique_ptr<std::basic_string<char> >::unique_ptr(std::basic_string<char>&)'
修复此错误的方法是什么?