C++ 另一种方法是初始化唯一指针的向量

C++ 另一种方法是初始化唯一指针的向量,c++,stdvector,unique-ptr,initializer-list,C++,Stdvector,Unique Ptr,Initializer List,我需要一种方法来获取从函数返回的“std::unique_ptr”,并在初始化列表中使用它来初始化其中的std::vector。我愿意接受任何涉及使用逗号分隔列表初始化std::vector的解决方案(即返回向量的可变函数),但此过程需要使用移动语义来获取返回的“std::unique_ptr”数据。我遇到的问题可以在下面的代码中看到: #包括 #包括 std::unique_ptr create(int值){ 返回标准::使_唯一(值); } int main(){ std::vector m

我需要一种方法来获取从函数返回的“std::unique_ptr”,并在初始化列表中使用它来初始化其中的
std::vector
。我愿意接受任何涉及使用逗号分隔列表初始化
std::vector
的解决方案(即返回向量的可变函数),但此过程需要使用移动语义来获取返回的“std::unique_ptr”数据。我遇到的问题可以在下面的代码中看到:

#包括
#包括
std::unique_ptr create(int值){
返回标准::使_唯一(值);
}
int main(){
std::vector myVec={create(1)、create(2)、create(3)};//这会导致错误
返回0;
}
错误信息:C2280'std::unique\u ptr>::unique\u ptr(const std::unique\u ptr&'):尝试引用已删除的函数c:\program files(x86)\microsoft visual studio 14.0\vc\include\xmemory0 737

我正在使用microsoft visual Studio 2015编译该程序


编辑:正如我之前所说,我需要一些解决方案,只涉及一个逗号分隔的唯一指针列表,我似乎不知道如何使用可变参数来告诉我诸如std::initializer#list之类的参数可以做什么。是否有一些模板或宏黑客可以用来实现这一点?

你不能将元素移出
std::initializer\u列表

你不能将元素移出
std::initializer\u列表

不知道为什么人们一直称它为“visual Studio”,或者为什么你有这么有趣的缩进样式,但这是顺便提一下;)相关报道:不知道为什么人们一直称它为“视觉工作室”,或者为什么你有这么有趣的缩进风格,但这是顺便提一下;)相关报道:这太可怕了。这太可怕了。