2016-07-27 22 views
2
ausgeführt wird

Ich habe folgendes Stück Qt Code:QtCreator semantisches Problem Warncode wird nie

if(this->ueCommunicationsSocket()->bind(QHostAddress(data[0].toString()), 
             static_cast<quint16>(data[1].toInt())), 
             QAbstractSocket::ShareAddress) 
{ 
    qDebug() << Q_FUNC_INFO 
      << "TCP socket bind succesfull"; 
} 
else 
{ 
    qDebug() << Q_FUNC_INFO 
      << QString::number(this->ueCommunicationsSocket()->error()) 
      << this->ueCommunicationsSocket()->errorString(); // here i get semantic issue 
} // if 

und ich bin immer semantisches Problem Warncode wird nie ausgeführt werden. Ich bin mir bewusst, dass dies ein dummer Fehler ist und ich bin bereit, Downvote (s) zu bekommen, aber ich kann keinen Fehler finden! Hier ist auch ein Screenshot: Qt Creator Semantic Issue

+0

Welchen Compiler benutzen Sie? Klingt es? – demonplus

+0

Nein, es ist 'gcc Version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.1)' – KernelPanic

+1

@KernelPanic kompilieren Sie in Release oder mit QT_NO_DEBUG_OUTPUT definiert? Es sieht nicht so aus, als ob der andere QDebug keine Warnung zu sein scheint, aber ich frage, weil ich vor kurzem hier reingekommen bin: http://lists.qt-project.org/pipermail/interest/2015-December/ 020171.html – Uflex

Antwort

1
if(this->ueCommunicationsSocket()->bind(QHostAddress(data[0].toString()), 
             static_cast<quint16>(data[1].toInt())), 
             QAbstractSocket::ShareAddress) 

ist

if (/*something */, QAbstractSocket::ShareAddress) 

seit AbstractSocket::SharedAddress0x1 ist, diese Bedingung mit einem Komma-Operator !ist immer wahr, das heißt der else Zweig wird nie ausgeführt werden.