C++ 표준은 프로그램이 특정 상황에서 어떻게 작동해야 하는지에 대한 규칙을 정의합니다. 그리고 대부분의 경우 컴파일러는 이러한 규칙을 따릅니다. 그러나 많은 컴파일러는 종종 다른 버전의 언어(예: C99)와의 호환성을 향상시키기 위해 또는 역사적 이유로 언어에 대한 자체 변경 사항을 구현합니다. 이러한 컴파일러 고유의 동작을 컴파일러 확장이라고 합니다.
컴파일러 확장을 사용하는 프로그램을 작성하면 C++ 표준과 호환되지 않는 프로그램을 작성할 수 있습니다. 비표준 확장을 사용하는 프로그램은 일반적으로 다른 컴파일러(동일한 확장을 지원하지 않는 컴파일러)에서 컴파일되지 않으며, 지원하더라도 제대로 실행되지 않을 수 있습니다.
실망스럽게도 컴파일러 확장은 기본적으로 활성화되어 있는 경우가 많습니다. 이것은 작동하는 일부 동작이 공식 C++ 표준의 일부라고 생각할 수 있는 새로운 학습자에게 특히 피해를 줍니다. 실제로는 컴파일러가 단순히 지나치게 허용합니다.
컴파일러 확장은 절대 필요하지 않으며 프로그램이 C++ 표준을 준수하지 않게 하므로 컴파일러 확장을 끄는 것이 좋습니다.
모범 사례 (Best Practice) 프로그램(및 코딩 방식)이 C++ 표준을 준수하고 모든 시스템에서 작동하도록 하려면 컴파일러 확장을 비활성화하십시오. |
Disabling compiler extensions
Visual Studio 사용자의 경우 (For Visual Studio users) 컴파일러 확장을 비활성화하려면 솔루션 탐색기 창에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다. ![]() 프로젝트 대화 상자에서 먼저 구성 필드가 모든 구성으로 설정되어 있는지 확인하십시오. 그런 다음 C/C++ > 언어 탭을 클릭하고 언어 확장 비활성화를 예(/Za)로 설정합니다. ![]() |
코드블록 사용자 (For Code::Blocks users) 설정 메뉴 > 컴파일러 > 컴파일러 플래그 탭을 통해 컴파일러 확장을 비활성화한 다음 -pedantic-errors 옵션을 찾아 확인합니다. ![]() |
GCC/G++ 사용자용 -pedantic-errors 플래그를 컴파일 명령줄에 추가하여 컴파일러 확장을 비활성화할 수 있습니다. |
Related content Xcode 사용자는 친절하게 지침을 제공한 Rory의 의견을 참조할 수 있습니다. |
Reminder (알림) 이러한 설정은 프로젝트별로 적용됩니다. 새 프로젝트를 만들 때마다 설정하거나 해당 설정으로 템플릿 프로젝트를 한 번 만들고 새 프로젝트를 만드는 데 사용해야 합니다. |
'C++ (learncpp) > Introduction - Getting Started' 카테고리의 다른 글
0.12 — Configuring your compiler: Choosing a language standard (0) | 2021.10.21 |
---|---|
0.11 — Configuring your compiler: Warning and error levels (0) | 2021.10.21 |
0.9 — Configuring your compiler: Build configurations (0) | 2021.10.21 |
0.8 — A few common C++ problems (0) | 2021.10.20 |
0.7 — Compiling your first program (0) | 2021.10.19 |