VS6 では問題なく動作するこのコードがありますが、VS2010 ではエラーが発生します。
void CGreatString::operator>> (char * lpszDest)
{
strcpy (lpszDest, str());
rdbuf()->freeze(0);
}
私の問題に似たものでこれを見つけましたが、それでもうまくいきませんでした...
したがって、私が理解していることから、VS2010ではostrstreamが非推奨になっているため、これを試しました:
void CGreatString::operator>> (char * lpszDest)
{
ostringstream os;
string str = os().str(); //Error 1 and 2
strcpy (lpszDest, str.c_str());
os.rdbuf()->freeze(0); //Error 3
}
しかし、私はまだエラーが発生します:
1- エラー C2064: 項は引数を 0 個取る関数として評価されません
2- エラー C2228: '.str' の左側にはクラス/構造体/共用体が必要です
3- エラー C2039: 'freeze' : 'std::basic_stringbuf<_Elem,_Traits,_Alloc>' のメンバーではありません
ありがとう!