c – ofstream不在linux上工作
我有一个简单的测试代码:
#include <string> #include <iostream> #include <fstream> int main() { std::ofstream strm = std::ofstream("test.txt"); strm << "TEST123"; strm.close(); return 0; } 如果我在Windows上编译它,它完美地工作.但是当我使用以下命令在debian上编译它时: 我用google搜索这个错误无济于事.有谁知道如何解决这个问题?我在我的项目中使用了很多流,并且想在linux上编译它. 编辑:所以我现在感谢WinterMute编译,但现在它打印空文件.我该如何解决? 编辑2:不知道为什么,但第二次编译它的工作.谢谢! 解决方法
使用
std::ofstream strm("test.txt"); 这个: std::ofstream strm = std::ofstream("test.txt"); 需要一个std :: ofstream没有的复制构造函数或者只有C 11以后才能使用的移动构造函数.GCC 4.7还没有完全支持C 11,显然这是缺少的功能之一. 在评论中,T.C.提到可移动流将不会在第5版之前发布,计划于今年发布.这让我感到意外,因为gcc声称对版本4.8.1提供了完整的C 11支持 – 这对于编译器来说是正确的,但对于libstdc则不然.眼见为实. 所以值得一提的是,libc++(与clang和llvm相关的交流标准库实现)实现了可移动流,并且如果使用它们,则将3.5和gcc 4.9(这些是我在这里并尝试过)编译原始代码libstdc. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |