我一直在QDebug
使用msvc2010
重载一段时间:
friend QDebug &operator<<(QDebug &debug, const UsingClass &uc)
{
debug << uc.stringForStreaming();
return debug;
}
但是,在MinGW
gcc 4.6.2
下,此签名无法识别,我必须将其更改为(无参考&amp;):
friend QDebug operator<<(QDebug debug, const UsingClass &uc)
{
debug << uc.stringForStreaming();
return debug;
}
这让我感到很惊讶,因为我检查了QDebug
的头文件,并且签名基本上都是引用。
QDebug
重载运算符的正确签名是什么? SO:How to overload operator<< for qDebug显示没有参考的那个,但没有说明原因(不同的焦点)。