我想做这样的事情:
std::wistream input = std::wifstream(text);
if (!input) input = std::wistringstream(text);
// read from input
即,将文本解释为文件名,或者,如果不存在这样的文件,则使用其内容而不是文件的内容。
我当然可以使用std::wistream * input
and then new
anddelete
来处理实际的流。但是,我必须将所有这些封装在一个类中(构造函数和析构函数,即用于异常安全的适当 RAII)。
在堆栈上还有另一种方法吗?