-2
この擬似コードはどうすれば動作させることができますか?出力ストリームを「パラメータ化する」方法
std::ostream ostr;
std::ofstream ofstr;
if(condition) {
ostr = std::cout;
}
else {
ofstr.open("file.txt");
ostr = ofstr;
}
ostr << "Hello" << std::endl;
std::ostream
にはパブリックデフォルトコンストラクタがないため、これはコンパイルされません。あなたのケースでは
リンク質問が_exact_の重複はありませんが、それは十分に近いですし、受け入れられた答えはあなたの問題の解決策を示します。 – Useless
あなたの場合、三元演算子を使うことができます: 'std :: ostream&ostr =(condition?std :: cout:(ofstr.open(" file.txt ")、ofstr));' – Jarod42
@ Jarod42: 'condition'がtrueのときに動作し、出力をcoutに出力しますが、' condition'がfalseのときにはファイルが書き込まれません。 – Pietro