Я буду делать презентацию по Python и затрону тему решения V3 о намеренной обратной несовместимости, и как это повлияло на Python в долгосрочной перспективе. В частности, я рассмотрю их решение убрать ключевое слово print
, потому что это решение не было строго необходимым. [ насколько я знаю ]
Однако, чтобы быть справедливым к языку, я хочу рассмотреть, где C и C++ делали подобное в своем прошлом, где они намеренно выпускали спецификацию, которая при внедрении определенно ломала существующий код. Я пытался расспросить об этом, но нашел только один конкретный случай:
Почему именно было удалено удобство C++, не требующее второго объявления?
Однако этот пример кажется настолько эзотерическим, что его вряд ли можно считать актуальным. У меня сложилось впечатление, что поломки на самом деле довольно часты при каждом выпуске C++, просто мне не ясно, являются ли эти поломки ошибками/ошибками, или скорее намеренными поломками/депрекациями, внесенными в спецификацию.
Относительно C или C++
Спасибо.
В (проекте) международных стандартов все изменения перечислены в приложении C (информативном) Совместимость [diff] .
Как компиляторы в целом справились с этим изменением?
Популярные компиляторы C++ имеют опции для ориентации на определенные версии языка, например, передача аргумента командной строки для вызова