Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 C++98 中,以下代码无法编译,因为 ifstream 没有复制构造函数:
#include <iostream> #include <fstream> using namespace std; ifstream f() { return ifstream("main.cpp"); } int main() { ifstream st= f(); }
但是,在 C++11 中使用多个 GCC 版本,编译时不会出现警告。这是什么原因?
C++11 添加了移动构造函数。流现在已移动。st这里的源对象是返回表达式中的一个临时对象,可以移动到main.
st
main