7.12 Обратная совместимость
Теперь, когда есть окончательный стандарт ISO C++, G++ имеет спецификацию, которой нужно следовать. Язык C++ эволюционировал со временем, и функции, которые раньше были приемлемыми в предыдущих черновиках стандарта, таких как ARM [Annotated C++ Reference Manual], больше не принимаются. Для того, чтобы разрешить компиляцию C++, написанного по таким черновикам, G++ содержит некоторые функции обратной совместимости. Все такие функции обратной совместимости могут исчезнуть в будущих версиях G++. Они должны рассматриваться как устаревшие. См. Устаревшие функции.
For scope-
Если переменная объявлена в цикле for, она раньше оставалась в области видимости до конца области, содержащей оператор for (а не только внутри области for). Устаревшая опция -fno-for-scope включает это нестандартное поведение. Без этой опции G++ сохраняет это поведение, но выдает предупреждение, если такая переменная используется за пределами области цикла for.
Это поведение устарело, доступно только с языками -std=c++98 -std=gnu++98, и вы должны использовать опцию -fpermissive для его включения. Это поведение будет удалено.
Friend Injection-
Опция -ffriend-injection делает инжектированных друзей видимыми для обычного поиска имен, в отличие от стандартного C++. Эта опция устарела и будет удалена.
Implicit C languageСтарые системные заголовочные файлы C не содержали области
extern "C" {…}для установки языка. В таких системах все заголовочные файлы неявно находятся внутри области языка C. Кроме того, пустой прототип()обрабатывается как неопределенное количество аргументов, а не как отсутствие аргументов, как требует C++.
Предыдущий: Устаревшие функции, Вверх: Расширения C++ [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/Backwards-Compatibility.html