Проверка синтаксиса в IDE не на 100% надежна. Они становятся все лучше и лучше, но 100% -ная точность не достижима, особенно для языков, таких как C и C++, которые допускают макросы препроцессора и тому подобное.
Определенные комбинации содержимого #include в сочетании с пространствами имен и макро-расширениями могут вызвать проверку синтаксиса, даже если код на самом деле правильный.
Ошибка (или просто предупреждение) где-то в коде или включении может также создавать ложные синтаксические предупреждения ниже в исходном файле.
Это не только проблема с Visual Studio. Это может произойти в любой IDE или редакторе, который выполняет подсветку / проверку синтаксиса. Я видел, как это происходит в XCode, Eclipse и CodeBlocks, просто чтобы назвать несколько примеров.
В целом: если вы сталкиваетесь с чем-то подобным, это, как правило, указывает на то, что исходный код, который определяет объявление (в вашем случае это include, который определяет explode ()), возможно, написан неясным, двусмысленным или даже неправильным образом. Даже если он компилируется для вашего конкретного использования функции explode () в исходном коде, он может этого не делать для всех возможных вариантов использования.
Вам следует подумать о переработке этого кода, чтобы он больше не показывал красную линию. Это будет сбивать с толку другого программиста, которому нужно работать над кодом позже. И этот другой программист может быть вами, если вам нужно повторно посетить код через несколько месяцев и забыть обо всем этом.