Spec-Zone.ru › GCC 5

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

В прошлом компилятор 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++.

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

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

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

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

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

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

Spec-Zone.ru

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