Функции компилятора в Visual C++ 2005
Обновлен: Ноябрь 2007
В этом разделе перечислены новые функции компилятора Visual C++ 2005.
![]() |
---|
Компилятор Visual C++ может работать только в следующих операционных системах: Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003. |
Примечания
Компилятор Visual C++ 2005 обладает следующими новыми функциями:
В данной версии компилятора были внесены критические изменения. Дополнительные сведения см. в разделе Критические изменения в компиляторе Visual C++ 2005.
64-разрядный машинный компилятор и 64-разрядный кросс-компилятор. Дополнительные сведения см. в разделах Параметры компилятора и Программные соглашения x64.
Был добавлен параметр компилятора Параметр /analyze (анализ кода Enterprise).
Был добавлен параметр компилятора /bigobj.
Были добавлены параметры компилятора /clr:pure, /clr:safe и /clr:oldSyntax. Дополнительные сведения см. в разделе /clr (компиляция CLR).
Устаревшие параметры компилятора: многие параметры компилятора в этом выпуске являются устаревшими; дополнительные сведения см. в разделе Нерекомендуемые параметры компилятора в Visual C++ 2005.
Удвоение преобразователей в коде /clr сокращено; дополнительные сведения см. в разделе Двойное преобразование (С++).
Параметры Параметр /EH (модель обработки исключений) и /EHs теперь нельзя использовать для перехвата исключений, созданных без применения throw; следует использовать параметр /EHa.
Был добавлен параметр компилятора Параметр /errorReport (отчет о внутренних ошибках компилятора).
Был добавлен параметр компилятора /favor (оптимизировать для x64).
Был добавлен параметр компилятора /FA, /Fa (файл листинга).
Был добавлен параметр компилятора /FC (полный путь к файлу исходного кода в папке Diagnostics).
Был добавлен параметр компилятора /fp (Определение поведения с плавающей запятой).
Был добавлен параметр компилятора Параметры /G (оптимизация под процессор).
Был добавлен параметр компилятора Параметры /G (оптимизация под процессор).
Параметры компилятора /G3, /G4, /G5, /G6, /G7 и /GB были удалены. Теперь компилятор теперь использует "смешанную модель", которая пытается создать оптимальный выходной файл для всех архитектур.
Параметр /Gf был удален. Вместо него следует использовать параметр /GF (Исключение повторяющихся строк).
Параметр /GL (оптимизация всей программы) теперь совместим с параметром /CLRHEADER. Дополнительные сведения см. в разделе Параметр /LTCG (создание кода во время компоновки).
Параметр /GR теперь по умолчанию включен. Дополнительные сведения см. в разделе /GR (Предоставление информации о типах во время выполнения).
Параметр Параметр /GS (проверка безопасности буфера) теперь обеспечивает защиту безопасности для уязвимых параметров-указателей. Параметр /GS теперь по умолчанию включен. Параметр /GS теперь также работает с функциями, компилируемыми в MSIL с помощью параметра /clr (компиляция CLR).
Был добавлен параметр компилятора /homeparams (копирование параметров регистров в стек).
Был добавлен параметр компилятора /hotpatch (Создать образ с обновлениями).
Эвристические правила встраивания функций были обновлены; дополнительные сведения см. в разделах inline, __inline, __forceinline и inline_depth
Было добавлено много новых подставляемых функций; многие ранее не описывавшиеся подставляемые функции теперь имеют описание. Дополнительные сведения см. в разделе Alphabetical Listing of Intrinsic Functions.
По умолчанию, любой вызов new, завершающийся ошибкой, приводит к возникновению исключения. Дополнительные сведения см. в разделе The new and delete Operators.
Параметры компилятора /ML и /MLd были удалены. Visual C++ теперь не поддерживает однопотоковую библиотеку CRT со статической компоновкой. Дополнительные сведения см. в разделе C Run-Time Libraries.
В компиляторе реализована функция оптимизации именованных возвращаемых значений, включаемая при компиляции с использованием параметров /O1, /O2 (минимизировать размер, максимизировать скорость), /Og (Виды глобальной оптимизации) и /Ox (полная оптимизация).
Параметр компилятора /Oa был удален, но при этом он пропускается без выдачи сообщений; для указания метода присвоения псевдонимов при компиляции следует использовать модификаторы noalias и restrict__declspec.
Параметр компилятора /Op был удален. Вместо него следует использовать параметр /fp (Определение поведения с плавающей запятой).
Теперь Visual C++ поддерживает языковые расширения OpenMP. Дополнительные сведения см. в разделе OpenMP in Visual C++.
Был добавлен параметр компилятора /openmp (включение поддержки OpenMP 2.0).
Параметр компилятора /Ow был удален, но при этом он пропускается без выдачи сообщений. Для указания метода присвоения псевдонимов при компиляции следует использовать модификаторы noalias и restrict__declspec.
Параметр /QI0f был удален.
Параметр /QIfdiv был удален.
Был добавлен параметр компилятора /QIPF_B (список ошибок для пошагового выполнения B ЦП).
Был добавлен параметр компилятора Параметр /QIPF_C (список ошибок для пошагового выполнения С ЦП).
Был добавлен параметр компилятора /QIPF_fr32 (Не используйте верхние регистры 96-разрядного формата с плавающей запятой).
Был добавлен параметр компилятора /QIPF_noPIC (создание кода, зависящего от позиции).
Был добавлен параметр компилятора /QIPF_restrict_plabels (предполагать, что функции во время выполнения не создаются).
Параметр /vd (отключение смещений при выполнении конструктора) теперь позволяет применять dynamic_cast Operator к конструируемому объекту (/vd2)
Параметр компилятора /YX был удален. Вместо этого следует использовать параметры /Yc (создать предварительно скомпилированный заголовочный файл) или /Yu (использование файла предкомпилированного заголовка). Удаление параметра /YX из конфигураций построения и замена его пустой строкой может привести к ускорению процесса построения.
Параметр /Zc:forScope теперь по умолчанию включен. Дополнительные сведения см. в разделе /Zc:forScope (принудительное обеспечение соответствия в области видимости оператора for).
Параметр /Zc:wchar_t теперь по умолчанию включен. Дополнительные сведения см. в разделе /Zc:wchar_t (wchar_t – это собственный тип).
Параметр компилятора /Zd был удален. Отладочная информация, содержащая только номера строк, теперь не поддерживается. Вместо него следует использовать параметр /Zi (дополнительные сведения см. в разделе /Z7, /Zi, /ZI (формат отладочной информации)).
Параметр /Zg теперь допускается только для файлов исходного кода на языке C, но не для файлов исходного кода на языке C++. Дополнительные сведения см. в разделе /Zg (создание прототипов функций).
Был добавлен параметр компилятора /Zx (отладка оптимизированного кода Itanium).