7.13 Обратная совместимость
Теперь, когда существует окончательный стандарт ISO C++, G++ имеет спецификацию, которой нужно следовать. Язык C++ эволюционировал со временем, и функции, которые были приемлемы в предыдущих черновиках стандарта, такие как ARM [Комментированный справочник по C++], больше не принимаются. Для того, чтобы разрешить компиляцию кода C++, написанного для таких черновиков, G++ содержит некоторые функции обратной совместимости. Все такие функции обратной совместимости могут исчезнуть в будущих версиях G++. Они должны считаться устаревшими. См. Устаревшие функции.
For scope- Если переменная объявляется в блоке for, она раньше оставалась в области видимости до конца блока, содержащего оператор for (а не только внутри блока for). G++ сохраняет это, но выдает предупреждение, если такая переменная используется за пределами блока for.
Implicit C language- Старые системные заголовочные файлы C не содержали области
extern "C" {...}для установки языка. В таких системах все заголовочные файлы неявно находятся в области видимости языка C. Кроме того, пустой прототип()обрабатывается как имеющий неопределённое количество аргументов, а не как не имеющий аргументов, как требует C++.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Backwards-Compatibility.html