Share via


컴파일러 한계

C++ 표준에서는 다양한 언어 구문에 대한 한도를 권장합니다. 다음은 Microsoft C++ 컴파일러가 권장 제한을 구현하지 않는 경우의 목록입니다. 첫 번째 숫자는 ISO C++11 표준(INCITS/ISO/IEC 14882-2011[2012], 부록 B)에 설정된 제한이며 두 번째 숫자는 Microsoft C++ 컴파일러에서 구현하는 제한입니다.

  • 복합 문, 반복 제어 구조 및 선택 컨트롤 구조 중첩 수준 - C++ 표준: 256, Microsoft C++ 컴파일러: 중첩된 문의 조합에 따라 달라지지만 일반적으로 100에서 110 사이입니다.

  • 한 매크로 정의의 매개 변수 - C++ 표준: 256, :127을 사용 /Zc:preprocessor-하거나 :32767을 사용하는 /Zc:preprocessorMicrosoft C++ 컴파일러.

  • 한 매크로 호출의 인수 - C++ 표준: 256, :127을 사용 /Zc:preprocessor-하거나 :32767을 사용하는 /Zc:preprocessorMicrosoft C++ 컴파일러.

  • 문자열 리터럴 또는 와이드 문자열 리터럴의 문자(연결 후) - C++ 표준: 65536, Microsoft C++ 컴파일러: NULL 종결자를 포함한 65535 싱글 바이트 문자 및 NULL 종결자를 포함한 32767 더블 바이트 문자.

  • 단일 struct-declaration-list C++ 표준의 중첩 클래스, 구조체 또는 공용 구조체 정의 수준: 256, Microsoft C++ 컴파일러: 16.

  • 생성자 정의의 멤버 이니셜라이저 - C++ 표준: 6144, Microsoft C++ 컴파일러: 6144 이상.

  • 한 식별자의 범위 자격 - C++ 표준: 256, Microsoft C++ 컴파일러: 127.

  • 중첩 사양 extern - C++ 표준: 1024, Microsoft C++ 컴파일러: 9(전역 범위에서 암시적 extern 사양을 계산하지 않음, 전역 범위에서 암시적 extern 사양을 계산하는 경우 10)

  • 템플릿 선언의 템플릿 인수 - C++ 표준: 1024, Microsoft C++ 컴파일러: 2046.

참고 항목

비표준 동작