我有這個函數應該把一個可選的流參數打印成errortext。可能創建臨時streamobject作爲函數的參數?
void showUsage(std::wstringstream oErrortext, bool bExit, int nExitCode)
{
if(oErrortext.rdbuf()->in_avail() > 0)
std::wcerr << oErrortext << std::endl;
std::wcout << gUsage << std::endl;
if(bExit == true)
exit(nExitCode);
}
現在,當我嘗試用一個參數來調用這個,它工作正常:
showUsage(std::wstringstream(L"Multiple filenames for target found"), true, 10);
可是爲什麼我想用字符串流的理由是,爲了能夠建立一個generaetd串,不只是靜態字符串。
例子:
showUsage(std::wstringstream(L"Number format for offset missing -") << oParam->mOption, true, 10);
但我得到一個編譯錯誤與此有關。
- 如何創建這個臨時對象並用一行代碼流傳輸參數(或者我必須首先創建它,因此無法用一行代碼)?
- 有沒有更好的解決方案,我想在這裏做什麼(而不是可變varargs)?