Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::填充右值,它是否只支持按副本填充?_C++ - Fatal编程技术网

C++ std::填充右值,它是否只支持按副本填充?

C++ std::填充右值,它是否只支持按副本填充?,c++,C++,给定std::futures的std::vector 我的意思是,fill\n没有收到xvalue吗?如果没有,为什么不?std::fill\n复制作为第三个参数传递的给定对象,但第三个参数是不可复制的未来对象,因为复制未来对象没有意义。因此出现了错误 看来你需要这个: std::generate_n(std::back_inserter(futures), 10, []{ return std::async([]{ std::

给定std::futures的std::vector

我的意思是,fill\n没有收到xvalue吗?如果没有,为什么不?

std::fill\n复制作为第三个参数传递的给定对象,但第三个参数是不可复制的未来对象,因为复制未来对象没有意义。因此出现了错误

看来你需要这个:

std::generate_n(std::back_inserter(futures), 
                10, 
               []{  return std::async([]{ std::cout << "yo\n"; }); });
其界面为:


然后它复制值计数时间。这就是为什么你会犯错误。虽然,即使它移动了,填充作为一种功能选择也没有意义。。。你会从同一个未来移动10次,所以你会得到一个有效的未来和9个空的未来?那有什么意义呢?

你还指望什么?要反复移动的输入?那怎么办?
std::fill_n(std::back_inserter(futures), 10, std::async([]{ std::cout << "yo\n"; }));

error: use of deleted function future(const future&)
std::generate_n(std::back_inserter(futures), 
                10, 
               []{  return std::async([]{ std::cout << "yo\n"; }); });
template< class OutputIt, class Size, class T >
OutputIt fill_n( OutputIt first, Size count, const T& value );