QDebug在朋友的方法,有或没有&?

时间:2013-04-29 18:40:23

标签: qt4 qdebug

我一直在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的头文件,并且签名基本上都是引用。

  1. 那么使用QDebug重载运算符的正确签名是什么? SO:How to overload operator<< for qDebug显示没有参考的那个,但没有说明原因(不同的焦点)。
  2. 为什么第一个签名(&amp;)与msvc2010一起使用,但是使用gcc失败了?

0 个答案:

没有答案