我有这个函数,它应该将一个可选的流参数打印为错误文本。
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);
但我想使用 stringstream 的原因是,能够构造一个生成字符串,而不仅仅是静态字符串。
例子:
showUsage(std::wstringstream(L"Number format for offset missing -") << oParam->mOption, true, 10);
但是我得到了一个编译错误。
- 如何创建这个临时对象并使用单行流式传输参数(或者我是否必须先创建它,这样单行就不可能了)?
- 有没有更好的解决方案来解决我在这里尝试做的事情(不搞乱可变参数)?