MSVC - замена компилятора

erotic

Можно ли как-нибудь настроить компилятор MSVC2005, чтобы он компилировал более строго по стандарту?
Если заменить стандартный cl на какой-нибудь другой компилятор, например, gcc или интеловский (говорят, самые лучшие) - не возникнет ли проблем при компилировании, например, из-за разных опций к ним?

Realist

Project -> Properties -> Configuration Properties -> C/C++ -> Language -> Disable Language Extensions -> Yes
Проблемы будут, потому что
1) MSVS норовит сунуть всякую фигню от MS — MFC, windows.h, предкомпилированные хидеры и прочие нестандартные вещи.
2) Частично вылезут всякие косяки типа delete/delete[], которые работали по ошибке.
3) Целиком стандарт никто не поддерживает, так что можно нарваться на такие вещи, которые один компилятор кушает, а другой — нет, либо же исходный компилятор кушает по ошибке.

erotic

1) MSVS норовит сунуть всякую фигню от MS — MFC, windows.h, предкомпилированные хидеры и прочие нестандартные вещи.
Не думаю, что студия будет совать MFC или windows.h, если я ее об этом не попрошу. А предкомпиленные хидеры не только она поддерживает вроде, да и отключить их можно.
Спасибо)

maggi14

а что, gcc компилит по стандарту, что ли? Мне не хочется лазить в стандарт, потому что я даже не знаю, как называется внутренняя функция (ну, гнездовая. Как в паскале: одна функция внутри другой но если я правильно помню, стандарт это не скушает, а gcc - запросто.

poi1981

в плане соответствия стандарту MSVC++ и GCC примерно равны
наиболее "стандартный" вроде бы вот этот - http://www.comeaucomputing.com/
денег стоит, правда

valodyr

Про -pedantic и -std слышали?

erotic

Нет, расскажи. У меня компилятор не воспринимает

valodyr

Это для gcc. Ключ -pedantic включает соответствие выбранному стандарту. Параноидальное, вплоть до стиля комментариев (ну, например, в C нельзя будет использовать "//"). Ключ -std, соответственно, выбирает стандарт, например -std=c99. Подробнее см. /path/to/cc1 --help.
Оставить комментарий
Имя или ник:
Комментарий: