O verificador de sintaxe no IDE não é 100% confiável. Eles estão ficando cada vez melhores, mas 100% de precisão não é alcançável, especialmente em linguagens como C e C ++ que permitem macros pré-processador e similares.
Certas combinações de #include, combinadas com namespaces e macro-expansões podem lançar o verificador de sintaxe, mesmo que o código esteja correto.
Um erro (ou apenas um aviso) em algum lugar no código ou em uma inclusão também pode criar avisos falsos de sintaxe mais abaixo no arquivo de origem.
Este não é apenas um problema com o Visual Studio. Isso pode acontecer em qualquer IDE ou editor que faça destaque / verificação de sintaxe. Eu vi isso acontecer no XCode, Eclipse e CodeBlocks também, apenas para citar alguns exemplos.
Em geral: Se você encontrar algo assim, é geralmente uma indicação de que o código-fonte que define a declaração (a inclusão que define explode () no seu caso) é possivelmente escrito de forma não clara, ambígua ou até errada. caminho. Mesmo que ele compila para seu uso específico de explode () na fonte, ele pode não fazer isso para todos os possíveis casos de uso.
Você deve considerar reformular esse código para que ele não mostre mais a linha vermelha. Será confuso para outro programador que precisa trabalhar no código mais tarde. E esse outro programador pode ser você, se você precisar revisitar o código alguns meses depois e esquecer tudo isso.