このフォーラムではストリームオブジェクトのコピーが許可されていないことについて議論していますが、そうは思わない)これは私の場合です。ストリームをプライベートクラス変数として定義することはLinuxでは可能ですが、Windowsでは実行できないようですVisual Studio
ストリームを特定のクラスのプライベート変数として定義する必要があります。私はすでにUbuntuの下で書かれたアプリケーションのためにこれをやっています。
class of_driving{
public:
of_driving();
~of_driving();
// ... Some public stuff ...
private:
// ... Some private stuff ...
std::ofstream J_f;
};
これは簡単に実行できました。 は今、私は基本的に別のアプリケーションのために同じことをやろうとしているが、私はWindowsでのVisual Studioに取り組んでいます:
class FTSensor{
public:
FTSensor();
~FTSensor();
private:
std::stringstream ftMeasurementSS;
};
しかし、私は、次のエラーを得たソリューションを構築する場合:
Errore 2 error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>' D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream 724
誰でもこの現象を説明できますか?私は今までのところ唯一の違いだと思うので、別のOSで作業していたことを強調しましたが、その理由は異なる性質のものになるとも考えています。 ありがとうございます
どのバージョンのMSVSを使用していますか? – NathanOliver
OSの違いは無関係です。重要なことはコンパイラ、あなたの場合はWindows VC++、Ubuntu gccでは指定していないが、私は言うだろう。同じプラットフォームの下には常に複数のコンパイラがあるので、プラットフォームをリストすることはあまり役に立ちません。 – Rakete1111
ストリームをコピーしようとしているようです。完全で再現性の高い**例**を提供してください。 –