は、それがストリームのstreambuf
は、その元のストリームの破壊の破壊後も持続することは可能ですか?ストリームのstreambufは、ストリームの破壊を超えて存続しますか?
streambuf* f() {
ifstream my_stream;
// ...
return my_stream.rdbuf();
}
void g() {
streambuf *s = f();
// ...
ifstream my_new_stream;
my_new_stream.rdbuf(s);
}
すなわち、私はf()
によって返さstreambuf
オブジェクトへのポインタがmy_stream
がスコープの外に出た後も有効なままにしておきたいです。後で、別のストリームのstreambuf
を保存したstreambuf
に設定したいとします。
これは可能ですか?もしそうなら、どうですか?
あなたがこれを行うにはしたくないのはなぜ? 'ifstream'自体への参照を保存するだけの理由はありませんか? – casablanca
ifstreamが範囲外になっても、私はまだ同じ問題を抱えています。 –
ストリームバッファへのポインタを取るRDBUFバージョンも、前に使用し、古いストリームバッファを返し、あなたに所有権を転送する必要があります...多分あなたのために働く...しかし、私は '(0)stream.rdbufを返す場合は知りません; '動作します。..またはあなたが(少なくともG ++バージョンの)fstreamのを見れば、' ' – smerlin