R.18.3 Анахронизм

R.18.3 Анахронизм

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

При описании или определении функции можно использовать слово overload в конструкции спецификация-описания (§R.7). Если оно используется в спецификации-описания, то считается служебным словом и его нельзя использовать как идентификатор.

Определение статического члена класса, представляющего данные, для которого дана стандартная инициализация нулями (§R.8.4, §R.9.4), может быть опущено.

Можно использовать команды препроцессора старого стиля (до ANSI C).

Можно присваивать объекту типа перечисления значение типа int.

При удалении массива, тип которого не имеет деструктора, можно указывать число элементов; §R.5.3.4.

Одна функция operator++() может использоваться для перегрузки как префиксных, так и постфиксных операций ++; тоже верно для операции --;  §R.13.4.6.