Possible Duplicates:
Why copying stringstream is not allowed?
how copy from one stringstream object to another in C++?ostringstream通報やコピーコンストラクタ
コンパイルクラスTは、Visual C++とGCCは、入出力ストリームテンプレートエラーを生成すると失敗します。ここでは、コードは次のとおりです。文字列にログデータメンバーの種類を変更する
#include <sstream>
class T
{
static T copy;
std::ostringstream log;
T() {}
T(const T& t) {log = t.log;}
~T() {copy = *this;}
};
T T::copy;
は、それがコンパイルし、[OK]を実行します。これは正当な行動ですか?
OK、それは本当だが、私も空のコピーコンストラクタと同じエラーを取得しています: 'T(のconst T&T){}' –
@Paul:ポスト実際のコード、およびエラー。 – Nawaz
@Nawasz:コピーコンストラクタを次のように置き換えて、上記の質問と同じです。 'T(const T&t){}'または 'T(const T&t){log << t.log.str();}'または 'T(const T&t){log << t.log.rdbuf();}'となります。私はいつも得ています:_std :: basic_ios <_Elem、_Traits> :: operator = ':仮想ベースで宣言されたプライベートメンバーへのアクセス可能なパスはありません' std :: basic_ios <_Elem、_Traits> '_ –