Die Syntaxprüfung in der IDE ist nicht zu 100% zuverlässig. Sie werden immer besser, aber eine 100% ige Genauigkeit ist nicht erreichbar, insbesondere nicht für Sprachen wie C und C ++, die Makroprozeduren und ähnliches zulassen.
Bestimmte Kombinationen von # include-Elementen, kombiniert mit Namensräumen und Makroerweiterungen können die Syntaxprüfung von auslösen, obwohl der Code tatsächlich korrekt ist.
Ein Fehler (oder nur eine Warnung) irgendwo im Code oder in einem Include kann zu falschen Syntaxwarnungen weiter unten in der Quelldatei führen.
Dies ist nicht nur ein Problem mit Visual Studio. Dies kann in jeder IDE oder in einem Editor geschehen, in dem die Syntax hervorgehoben / überprüft wird. Ich habe es auch in XCode, Eclipse und CodeBlocks gesehen, um nur einige Beispiele zu nennen.
Im Allgemeinen: Wenn Sie auf so etwas stoßen, ist dies in der Regel ein Hinweis darauf, dass der Quellcode, der die Deklaration definiert (das Include, das in Ihrem Fall explode () definiert) möglicherweise unklar, mehrdeutig oder sogar falsch geschrieben ist. Obwohl es für Ihre spezielle Verwendung von explode () in der Quelle kompiliert wird, ist dies möglicherweise nicht für alle möglichen Anwendungsfälle der Fall.
Sie sollten den Code überarbeiten, damit die rote Linie nicht mehr angezeigt wird. Dies wird für einen anderen Programmierer, der später an dem Code arbeiten muss, verwirrend. Und dieser andere Programmierer kann Sie sein, wenn Sie den Code ein paar Monate später erneut besuchen müssen und dies alles vergessen haben.