0.10 -- Konfigurowanie kompilatora: Rozszerzenia kompilatora

Standard C++ definiuje zasady dotyczące zachowania programów w określonych okolicznościach. W większości przypadków kompilatory będą przestrzegać tych zasad. Jednak wiele kompilatorów wdraża własne zmiany w języku, często w celu zwiększenia kompatybilności z innymi wersjami języka (np. C99) lub ze względów historycznych. Te specyficzne zachowania kompilatora nazywane są rozszerzeniami kompilatora.

Napisanie programu korzystającego z rozszerzenia kompilatora umożliwia pisanie programów niezgodnych ze standardem C++. Programy korzystające z niestandardowych rozszerzeń zazwyczaj nie będą się kompilować na innych kompilatorach (które nie obsługują tych samych rozszerzeń), a jeśli tak, mogą nie działać poprawnie.

Frustrujące jest to, że rozszerzenia kompilatora są często domyślnie włączone. Jest to szczególnie szkodliwe dla nowych uczniów, którzy mogą myśleć, że pewne działające zachowania są częścią oficjalnego standardu C++, podczas gdy w rzeczywistości ich kompilator jest po prostu zbyt liberalny.

Ponieważ rozszerzenia kompilatora nigdy nie są konieczne i powodują niezgodność programów ze standardami C++, zalecamy wyłączenie rozszerzeń kompilatora.

Najlepsza praktyka

Wyłącz rozszerzenia kompilatora, aby mieć pewność, że Twoje programy (i praktyki kodowania) pozostają zgodne ze standardami C++ i będą działać na każdym system.

Wyłączanie rozszerzeń kompilatora

W przypadku użytkowników programu Visual Studio

Aby wyłączyć rozszerzenia kompilatora, kliknij prawym przyciskiem myszy nazwę projektu w Eksplorator rozwiązań oknie, a następnie wybierz Właściwości:

Właściwości Eksploratora rozwiązań

W oknie dialogowym Projekt , najpierw upewnij się, że pole Konfiguracja jest ustawione ustaw na Wszystkie konfiguracje.

Następnie kliknij C/C++ > zakładkę Język i ustaw Tryb zgodności Do Tak (/permissive-) (jeśli nie jest to jeszcze ustawione przez domyślnie).

Wyłącz rozszerzenia językowe

W przypadku użytkowników Code::Blocks

Wyłącz rozszerzenia kompilatora poprzez menu Ustawienia > Kompilator > zakładka Flagi kompilatora, a następnie znajdź i zaznacz opcję -pedantic-errors .

Wyłącz rozszerzenia językowe

Dla użytkowników gcc i Clang

Możesz wyłączyć rozszerzenia kompilatora, dodając flagę -pedantic-errors w wierszu poleceń kompilacji.

Dla użytkowników VS Code

  • Otwórz plik task.json, znajdź "args", a następnie zlokalizuj wiersz "${file}" w tej sekcji.
  • Nad wierszem "${file}" wiersz, dodaj nową linię zawierającą następujące polecenia:

"-pedantic-errors",

Na chwilę pisania tego tekstu VS Code nie dodaje automatycznie znaku nowej linii na końcu plików kodu, w których go brakuje (coś, co jest pedantycznie wymagane przez standard C++). Na szczęście możemy nakazać VS Code, aby to zrobił:

  • Otwórz VS Code i przejdź do Plik (Kod, jeśli używasz Mac) > Preferencje > Ustawienia. Spowoduje to otwarcie okna dialogowego ustawień.
  • Wejdź insert final newline w pasek wyszukiwania.
  • Na obu zakładkach Ustawienia obszaru roboczego i Ustawienia użytkownika upewnij się, że pole wyboru oznaczone Pliki: Wstaw końcowy znak nowego wiersza jest zaznaczone.

Powiązana treść

Użytkownicy Xcode mogą zapoznać się z komentarzem Rory'ego, który uprzejmie udostępnił instrukcje.

Przypomnienie

Te ustawienia są stosowane dla każdego projektu. Należy je ustawić za każdym razem, gdy tworzysz nowy projekt lub jednorazowo utwórz projekt szablonowy z tymi ustawieniami i użyj go do tworzenia nowych projektów.

guest
Twój adres e-mail nie zostanie wyświetlony
Znalazłeś błąd? Zostaw komentarz powyżej!
Komentarze związane z poprawkami zostaną usunięte po przetworzeniu, aby pomóc zmniejszyć bałagan. Dziękujemy za pomoc w ulepszaniu witryny dla wszystkich!
Awatary z https://gravatar.com/ są połączone z podanym adresem e-mail.
Powiadamiaj mnie o odpowiedziach:  
258 Komentarze
Najnowsze
Najstarsze Najczęściej głosowane
Wbudowane opinie
Wyświetl wszystkie komentarze