我想为一个类提供 ostream<< 和 wostream<< 运算符,除了一个是widestream 而另一个不是之外,它们是相同的。
是否有一些技巧可以做到这一点,而不仅仅是复制粘贴和进行必要的调整?
作为参考,这是必要的,因为我们使用 wostream 作为标准,但是当提供 no 时,Google-test 的 EXPECT_PRED3 编译失败ostream<<
,即使其他宏可以愉快地使用ostream
or wostream
。
我的实际代码如下所示:
class MyClass
{
...
public:
friend std::wostream& operator<<(std::wostream& s, const MyClass& o)
{
...
}
};