相关疑难解决方法(0)

为什么不能移动std :: ostream?

显然,无法复制流.应该可以移动流.根据27.9.1.11 [ofstream.cons]段4有可能移动的构造std::ofstream(同为真std::ifstream,std::fstreamstd::*stringstream变体).例如:

#include <iostream>
#include <fstream>
#include <string>

std::ofstream makeStream(std::string const& name) {
    return std::ofstream(name);
}

int main()
{
    std::ofstream out{ makeStream("example.log") };
}
Run Code Online (Sandbox Code Playgroud)

试图运动std::ostream,例如,有一个工厂函数创建一个std::ofstream,一个std::ostringstream,或者根据参数不起作用通过了URN一些其他的流.std::ostream(std::basic_ostream实际上,类模板)protected根据27.7.3.1 [ostream] 有一个移动构造函数.

为什么不能自己std::ostream移动?

c++ iostream c++11

56
推荐指数
1
解决办法
4099
查看次数

标签 统计

c++ ×1

c++11 ×1

iostream ×1