【发布时间】:2011-08-16 19:25:49
【问题描述】:
我有这个代码:
std::wstringstream outstream;
outstream << (prop.m_pwszOriginalVolumeName
? prop.m_pwszOriginalVolumeName
: L"null") << L";"
<< (prop.m_pwszSnapshotDeviceObject
? prop.m_pwszSnapshotDeviceObject
: L"null") << L";"
<< (prop.m_pwszOriginatingMachine
? prop.m_pwszOriginatingMachine
: L"null") << L";"
<< ... // some more strings here
有没有办法避免代码重复,仍然有简洁的代码?
【问题讨论】:
-
只需创建一个函数或接受 StringPtr,然后运行您的三元条件运算符:outstream
-
@Mooing Duck,我正要建议一个宏作为一个选项:D
-
@Duck:宏不尊重命名空间,如果不对参数进行两次评估,就很难实现这一点。一个函数会好很多。