私はC++ 03であり、ちょうどC++に近づき始めました。インライン関数内でのデフォルト値としてのstringstreamの使用
私は文字列ストリーム上のいくつかのプロパティを設定する機能を作成し、それを返す(または参照で渡しmayebe)したいinline stringstream get_fixed_stream(stringstream ss=stringstream("")) {
ss.precision(4);
ss.setf(ios::fixed);
return ss;
}
ので、私は呼び出す場合:
stringstream ss = get_fixed_stream()
I私は
COUT = get_fixed_stream(COUT)
呼び出す場合、新しいstrinstringをrecive精度とsetfはcoutにセットされます。
私はこのエラーを取得:
/usr/include/c++/4.4/streambuf:770: error: ‘std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]’ is private
/usr/include/c++/4.4/iosfwd:63: error: within this context
。これは動作しません、ストリームはコピー不可能です。エラーメッセージがあなたに伝えていることです:ストリームクラスのコピーコンストラクタはプライベートです。 – jrok