7.11 Устаревшие функции ¶
В прошлом компилятор GNU C++ расширялся, чтобы экспериментировать с новыми функциями, в то время как язык C++ всё ещё развивался. Теперь, когда стандарт C++ завершён, некоторые из этих функций заменены более совершенными альтернативами. Использование старых функций может в некоторых случаях вызвать предупреждение о том, что функция будет удалена в будущем. В других случаях функция может быть уже удалена.
G++ позволяет переопределять виртуальную функцию, возвращающую ‘void *’, функцией, возвращающей другой тип указателя. Это расширение правил ковариантного возврата типа теперь устарело и будет удалено в будущей версии.
Использование аргументов по умолчанию в указателях на функции, typedef функций и других местах, где они не разрешены стандартом, устарело и будет удалено в будущей версии G++.
G++ позволяет использовать десятичные литералы с плавающей точкой в целочисленных константных выражениях, например, ‘ enum E { e = int(2.2 * 3.7) } ’. Это расширение устарело и будет удалено в будущей версии.
G++ позволяет объявлять статические члены данных типа const с плавающей точкой с инициализатором в определении класса. Стандарт допускает инициализаторы только для статических членов типа const целого типа и const перечисления, поэтому это расширение устарело и будет удалено в будущей версии.
G++ позволяет добавлять атрибуты после скобочного прямого инициализатора, например, ‘ int f (0) __attribute__ ((something)); ’. Это расширение игнорируется с G++ 3.3 и устарело.
G++ допускает анонимные структуры и объединения с членами, которые не являются общедоступными нестатическими данными (т.е. полями). Эти расширения устарели.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Deprecated-Features.html