Spec-Zone.ru › GCC 6

7.13 Устаревшие возможности

В прошлом компилятор GNU C++ расширялся для экспериментов с новыми возможностями в то время, когда язык C++ ещё развивался. Теперь, когда стандарт C++ завершён, некоторые из этих возможностей устарели и заменены более совершенными альтернативами. Использование устаревших возможностей может вызвать предупреждение о том, что данная возможность будет удалена в будущем. В других случаях эта возможность может быть уже удалена.

Хотя нижеприведённый список не является исчерпывающим, он документирует некоторые из устаревших опций:

-fexternal-templates
-falt-external-templates

Это два из многих способов реализации шаблонизации в G++. См. Шаблонизация. Стандарт C++ чётко определяет, как определения шаблонов должны быть организованы в модулях реализации. У G++ есть механизм неявной шаблонизации, который должен работать без проблем для кода, соответствующего стандарту.

-fstrict-prototype
-fno-strict-prototype

Ранее было возможно использовать пустой список параметров прототипа для указания неопределённого количества параметров (как в C), а не отсутствие параметров, как требует C++. Эта функция удалена, за исключением случаев, требуемых для обратной совместимости. См. Обратная совместимость.

G++ позволяет переопределять виртуальную функцию, возвращающую ‘void *’, функцией, возвращающей другой тип указателя. Это расширение правил ковариантности возвращаемого типа сейчас устарело и будет удалено в будущей версии.

Операторы G++ минимального и максимального значения (‘<?’ и ‘>?’) и их составные формы (‘<?=’) и ‘>?=’) устарели и теперь удалены из G++. Код, использующий эти операторы, следует изменить, используя std::min и std::max вместо них.

Расширение с именованным значением возврата устарело и теперь удалено из G++.

Использование списков инициализации с операторами new устарело и теперь удалено из G++.

Переменные шаблонов без типов с плавающей и комплексной точностью устарели и теперь удалены из G++.

Неявное расширение типа устарело и теперь удалено из G++.

Использование аргументов по умолчанию в указателях на функции, typedef функций и других местах, где они не разрешены стандартом, устарело и будет удалено в будущей версии G++.

G++ допускает появление литералов с плавающей точкой в целочисленных константных выражениях, например, ‘ enum E { e = int(2.2 * 3.7) } ’. Это расширение устарело и будет удалено в будущей версии.

G++ допускает объявление статических данных-членов типа с плавающей точкой const с инициализатором в определении класса. Стандарт допускает инициализаторы только для статических членов const целочисленного типа и типа перечисления const, поэтому это расширение устарело и будет удалено в будущей версии.

Далее: Обратная совместимость, Предыдущее: Исключения Java, Вверх: Расширения C++ [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.5.0/gcc/Deprecated-Features.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API