我願做這樣的事情:堆棧上的C++ stream polymorphy?
std::wistream input = std::wifstream(text);
if (!input) input = std::wistringstream(text);
// read from input
即有文字或者解釋爲一個文件名,或者,如果沒有這樣的文件,使用它的內容,而不是文件的內容。
我當然可以使用std::wistream * input
,然後new
和delete
作爲實際的流。但是,我必須將所有這些封裝在一個類中(構造函數和析構函數,即適當的RAII,以實現異常安全性)。
是否有另一種方法在堆棧上做到這一點?
您可以使用智能指針(如auto_ptr)自動處理分配/釋放,具體取決於您以後使用該變量。 – DeCaf
爲什麼在地球上會有人想要這樣做? –
@Alexandre C .:因爲我通常希望它能夠處理文件,但是爲了測試,我還想在命令行中快速指定一些文件內容示例。 –