Да, но компилятор все еще выполняет синтаксические и семантические проверки содержимого цикла. Таким образом, если что-то не так (то есть неявное преобразование типа из S*
в T*
недопустимо, что происходит, если T
не является ни S
, ни базовым классом S
), компиляция завершится неудачно. В противном случае на качество полученного машинного кода это не повлияет, так как оптимизатор обнаружит недоступный код и удалит его без вывода сообщений.