-1
#include <memory>
#include <istream>

typedef std::unique_ptr<std::istream> myType;

class myClass{

    myType myStream;
public:

    myClass(myType a_stream){
        myStream = std::move(a_stream); //compiler error
    }

};

新しく作成したストリームを移動できないのはなぜですか? 私の知る限り、ストリームはコピーできませんが、移動できます。私は何かが恋しいですか?一意のポインターは、少なくとも理論的には、コピー不可能なオブジェクトに特に適しています。

コンパイラ エラー

 no match for 'operator='
4

2 に答える 2

1

あなたのコードは私のためにコンパイルされます。私はそれに問題はないと思います。

于 2013-05-04T15:56:48.507 に答える