为什么我不能移动std :: ofstream?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (104)

看着以前的答案,似乎std::ostream是不可动的,std::ofstream应该是。但是,这个代码

#include <fstream>

int main()
{
    std::ofstream ofs;
    std::ofstream ofs2{std::move(ofs)};
}

似乎没有在任何版本的gcc或clang中编译我尝试过(使用--std = c ++ 11或--std = c ++ 14)。编译器的错误有所不同,但这里是我得到的gcc 4.9.0

6 : error: use of deleted function 'std::basic_ofstream::basic_ofstream(const std::basic_ofstream&)'

根据标准,这是预期的行为吗?

提问于
用户回答回答于

所属标签

可能回答问题的人

  • o o

    4 粉丝495 提问5 回答
  • 应用案例分享

    1 粉丝490 提问5 回答
  • uncle_light

    5 粉丝518 提问4 回答
  • 学生

    8 粉丝476 提问3 回答

扫码关注云+社区

领取腾讯云代金券