C++ 標準 [§27.8.2.1p4] の私のコピーから:
basic_stringbuf(basic_stringbuf&& rhs);
効果: 構造体を右辺値 rhs から移動します。*this (eback(), gptr(), egptr(), pbase(), pptr(), epptr()) 内のシーケンス ポインタが rhs が持っていた値を取得するかどうかは実装定義です。そうであろうとなかろうと、 *this と rhs は構築後に別々のバッファを (もしあれば) 参照します。openmode、locale、および rhs のその他の状態もコピーされます。
にも同様の文が使われていbasic_filebuf(basic_filebuf&& rhs);
ます。
質問
なぜこれが実装定義なのか疑問に思っていましたか? ポインターをコピーしたくない理由はありますか?