私はしばらくの間QDebug
withのオーバーロードを使用してきました:msvc2010
friend QDebug &operator<<(QDebug &debug, const UsingClass &uc)
{
debug << uc.stringForStreaming();
return debug;
}
ただし、この署名の下MinGW
でgcc 4.6.2
は認識されないため、(参照なし &) に変更する必要があります。
friend QDebug operator<<(QDebug debug, const UsingClass &uc)
{
debug << uc.stringForStreaming();
return debug;
}
QDebug
ヘッダーファイルとそこにある署名を基本的に参照しているので、これはどういうわけか私を驚かせます。
- では、演算子を でオーバーロードするための正しい署名は何
QDebug
ですか? SO: qDebug の operator<< をオーバーロードする方法は、参照のないものを示していますが、理由はわかりません (異なるフォーカス)。 - msvc2010 では最初の署名 (&) が機能するのに、gcc では失敗するのはなぜですか?