The syntax checker in the IDE is not 100% reliable. They are getting better and better, but 100% accuracy is not achievable, especially not for languages like C and C++ that allow pre-processor macros and the like.
Certain combinations of #include stuff, combined with name-spaces and macro-expansions can throw the syntax checker of, even though the code is actually correct.
An error (or just a warning) somewhere in the code or an include may also create spurious syntax-warnings further down in the source-file.
This is not only an issue with Visual Studio. It can happen in any IDE or editor that does syntax highlighting/checking. I have seen it happen in XCode, Eclipse and CodeBlocks too, just to name a few examples.
In general: If you encounter something like this, it is usually an indication that the source-code that defines the declaration (the include that defines explode() in your case) is possibly written in an unclear, ambiguous or even wrong way. Even though it compiles for your particular use of explode() in the source it may not do so for all possible use-cases.
You should consider re-working that code so it doesn't show the red line anymore. It will be confusing to another programmer that needs to work on the code later. And that other programmer can be you, if you need to re-visit the code a few months later and have forgotten all about this.
Do you happen to have the declaration of the method appearing after that particular call? I assume you have tried to close and reopen the project? – Ramhound – 2018-05-30T15:33:58.227
@Ramhound I wonder if "functions" actually means functions here. Pre-processor macros could also be the case and those can easily confuse the syntax-checker. – Tonny – 2018-05-30T15:42:44.257
@Tonny - I would also agree. It is not clear if the "identifier "explode" is undefined is a warning or an error in this case. If it was a syntax error then the code should be compiled. Without the entire file or the actual output of the compilation, I don't believe we can actually say the reason this error is being generated.of this error message. However, based on my nearly 2 decades worth of using Visual Studio to compile C++ code, I am going to guess there is a missing bracket somewhere int he code. – Ramhound – 2018-05-30T15:51:17.277