Visual C++ 2005 컴파일러 기능
업데이트: 2007년 11월
이 항목에는 Visual C++ 2005 컴파일러의 새로운 기능이 나열되어 있습니다.
참고: |
---|
Visual C++ 컴파일러는 Windows 2000 및 Windows XP Home Edition, Windows XP Professional, Windows Server 2003 운영 체제에서만 실행할 수 있습니다. |
설명
Visual C++ 2005 컴파일러에 새로 추가된 기능은 다음과 같습니다.
이 릴리스에서는 컴파일러가 크게 변경되었습니다. 자세한 내용은 Visual C++ 2005 컴파일러의 주요 변경 사항를 참조하십시오.
64비트 네이티브 및 크로스 컴파일러가 추가되었습니다. 자세한 내용은 컴파일러 옵션 및 x64 소프트웨어 규칙을 참조하십시오.
/analyze(엔터프라이즈 코드 분석) 컴파일러 옵션이 추가되었습니다.
/bigobj 컴파일러 옵션이 추가되었습니다.
/clr:pure, /clr:safe 및 /clr:oldSyntax가 추가되었습니다. 자세한 내용은 /clr(공용 언어 런타임 컴파일)를 참조하십시오.
이 릴리스에서는 여러 가지 컴파일러 옵션이 제거되어 이제 사용되지 않습니다. 자세한 내용은 Visual C++ 2005의 사용되지 않는 컴파일러 옵션을 참조하십시오.
/clr 코드의 이중 썽킹이 줄어들었습니다. 자세한 내용은 이중 썽킹(C++)을 참조하십시오.
throw되지 않고 발생하는 예외를 catch하는 데 /EH(예외 처리 모델) 또는 /EHs를 사용할 수 없습니다. 자세한 내용은 /EHa를 참조하십시오.
/errorReport(내부 컴파일러 오류 보고) 컴파일러 옵션이 추가되었습니다.
/favor(x64에 맞게 최적화) 컴파일러 옵션이 추가되었습니다.
/FA, /Fa(목록 파일) 컴파일러 옵션이 추가되었습니다.
/FC(진단 소스 코드 파일의 전체 경로) 컴파일러 옵션이 추가되었습니다.
/fp(부동 소수점 동작 지정) 컴파일러 옵션이 추가되었습니다.
/G(프로세서의 최적화) 옵션 컴파일러 옵션이 추가되었습니다.
/G(프로세서의 최적화) 옵션 컴파일러 옵션이 추가되었습니다.
/G3, /G4, /G5, /G6, /G7 및 /GB 컴파일러 옵션이 제거되었습니다. 컴파일러에서는 이제 모든 아키텍처에 대한 최상의 출력 파일을 만들기 위해 "복합 모델"을 사용합니다.
/Gf가 제거되었습니다. /GF(중복 문자열 제거)를 대신 사용해야 합니다.
/GL(전체 프로그램 최적화)이 /CLRHEADER와 호환됩니다. 자세한 내용은 /LTCG(링크 타임 코드 생성)를 참조하십시오.
/GR가 기본적으로 사용됩니다. 자세한 내용은 /GR(런타임 형식 정보 사용)를 참조하십시오.
/GS(버퍼 보안 검사)가 공격에 취약한 포인터 매개 변수에 대한 보안 기능을 제공합니다. /GS는 기본적으로 사용됩니다. /clr(공용 언어 런타임 컴파일)를 사용하여 MSIL로 컴파일되는 함수에도 /GS를 사용할 수 있습니다.
/homeparams(스택에 레지스터 매개 변수 복사) 컴파일러 옵션이 추가되었습니다.
/hotpatch(핫 패치 가능 이미지 만들기) 컴파일러 옵션이 추가되었습니다.
인라인 함수 휴리스틱이 업데이트되었습니다. 자세한 내용은 inline, __inline, __forceinline 및 inline_depth를 참조하십시오.
여러 가지 새로운 내장 함수가 추가되었고, 이전에 문서화되지 않았던 여러 내장 함수가 문서화되었습니다. 자세한 내용은 Alphabetical Listing of Intrinsic Functions를 참조하십시오.
new에 대한 호출이 실패하면 기본적으로 예외가 throw됩니다. 자세한 내용은 The new and delete Operators를 참조하십시오.
/ML 및 /MLd 컴파일러 옵션이 제거되었습니다. Visual C++는 이제 정적으로 링크된 단일 스레드 CRT 라이브러리를 지원하지 않습니다. 자세한 내용은 C Run-Time Libraries를 참조하십시오.
/O1, /O2(크기 최소화, 속도 최대화), /Og(전역 최적화) 및 /Ox(최대 최적화)를 사용하여 컴파일할 때 활성화되는 명명된 반환 값 최적화를 컴파일러가 구현합니다.
/Oa 컴파일러 옵션이 제거되었으며 이 옵션을 사용해도 자동으로 무시됩니다. 컴파일러가 별칭을 설정하는 방식을 지정하는 데는 noalias 또는 restrict__declspec 한정자를 사용합니다.
/Op 컴파일러 옵션이 제거되었습니다. /fp(부동 소수점 동작 지정)를 대신 사용해야 합니다.
OpenMP가 Visual C++에서 지원됩니다. 자세한 내용은 OpenMP in Visual C++를 참조하십시오.
/openmp(OpenMP 2.0 지원 활성화) 컴파일러 옵션이 추가되었습니다.
/Ow 컴파일러 옵션이 제거되었으며 이 옵션을 사용해도 자동으로 무시됩니다. 컴파일러가 별칭을 설정하는 방식을 지정하는 데는 noalias 또는 restrict__declspec 한정자를 사용합니다.
/QI0f가 제거되었습니다.
/QIfdiv가 제거되었습니다.
/QIPF_B(B CPU 스테핑 오류) 컴파일러 옵션이 추가되었습니다.
/QIPF_C(C CPU 스테핑 오류) 컴파일러 옵션이 추가되었습니다.
/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 코드 디버깅) 컴파일러 옵션이 추가되었습니다.