2017-02-06 4 views
-1

どのプラットフォームの機能(myfunc2またはmyfunc3)がすべてのプラットフォームで正しいのですか。iosの正しい使用

ostream &myfunc1(ostream &os) const { 
    // 
    return os; 
} 
ostream &myfunc2(ostream &os) const { 

    os << myfunc1(os); 
} 

ostream &myfunc3(ostream &os) const { 

    os << myfunc1(os).rdbuf(); 
} 
+0

'myfunc2'と' myfunc3'のそれぞれから 'return'ステートメントが欠けていますか? –

答えて

2

あなたはstreambufに根本的なバッファにアクセスし、ストリームのrdbuf()にアクセスする必要はありません。

概念的には、ostreamstreambufのフロントエンドです。 myfunc3で行っていることは、ostreamからインターフェイスをバイパスしてに直接アクセスしてstreambufに直接アクセスすることです。

これは実行できますが、これは珍しいことです。 myfunc2に固執する、それはそれを行う通常の方法です。

関連する問題