【发布时间】:2012-01-02 20:34:08
【问题描述】:
以下内容:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f;
ifstream g;
f = std::move(g);
}
为什么ifstream::operator=(const ifstream&)被调用而不是ifstream::operator=(ifstream&&)即使std::move()被调用?
更新:一般来说,有没有办法将左值引用强制为右值引用?
【问题讨论】:
-
istream::operator=(istream&&)存在吗? -
@iammilind 见sehe的回答。
-
@iammilind:是的,但它受到保护(参见第 27.7.2.1.2 节类 basic_istream 分配和交换)
标签: c++ c++11 rvalue-reference noncopyable