Подтвердить что ты не робот

Есть ли способ отключить старые стили стиля c в С++

Возможный дубликат:
Как найти (и заменить) все старые типы данных типа C в моем исходном коде на С++?

В настоящее время я реорганизую старый код, и проект, над которым я работаю, имеет политику только при использовании новых стилей в стиле С++. Я пытаюсь удостовериться, что я не пропустил никого, но в настоящее время подход, который я принимаю, довольно груб, поэтому мне интересно, есть ли способ сделать старомодные стили стиля не компилируемыми в проекте С++? (или, по крайней мере, дать предупреждение компилятора, если это невозможно)

4b9b3361

Ответ 1

Если вы используете GCC, добавьте -Wold-style-cast в командную строку. Это дает предупреждения, а не ошибки, но вы всегда можете добавить -Werror, который превращает предупреждения (все предупреждения) в ошибки.

Как и для других компиляторов, похоже, что никакой другой компилятор не имеет такого предупреждения.

Но это на самом деле не имеет значения: GCC - это бесплатное программное обеспечение и доступно практически для всего, что может различать нули и единицы. Просто установите его вместе со своим основным компилятором на своей рабочей станции или в вашу систему непрерывной интеграции и используйте его только для этой задачи. Вы обнаружите, что наличие двух компиляторов С++ под рукой очень удобно.

Если установка GCC действительно не является для вас вариантом, вы можете заглянуть в Как найти (и заменить) все старые типы данных типа C в моем С++ исходный код?, где обсуждаются некоторые альтернативы.

Ответ 2

Я рекомендую использовать this Perl script. За исключением необычных условий, таких как:   (Недействительный **) &ampы; b.ComInterfaceCall он просто работает.