私はこのようなことをしたいと思います:
std::wistream input = std::wifstream(text);
if (!input) input = std::wistringstream(text);
// read from input
つまり、テキストをファイル名として解釈するか、そのようなファイルが存在しない場合は、ファイルの内容の代わりにその内容を使用します。
もちろん、実際のストリームにはstd::wistream * input
and thennew
とを使用できます。delete
しかし、その場合、これらすべてをクラス (コンストラクターとデストラクター、つまり例外安全のための適切な RAII) にカプセル化する必要があります。
スタックでこれを行う別の方法はありますか?