2014-10-03 17 views
6

Istnieje kilka rozszerzeń w kompilatorach GNU g ++, takich jak VLA (array o zmiennej długości), mimo że te funkcje nie są standardami C++.Jak mogę skompilować tylko standardowe C++ z GNU g ++?

Więc jeśli potrzebuję skompilować program używając tylko standardowych konstrukcji C++ i unikając tych dodatkowych rozszerzeń, czy mogę to zrobić za pomocą GNU g ++?

Coś jak g++ test.cpp -std=onlyStandards?

+2

http://stackoverflow.com/q/2855121/390913 – perreal

+2

Zobacz mój [odpowiedź tutaj] (http://stackoverflow.com/a/25939282/1708801), w skrócie chcesz '-std = C++ 11 -pedantic-errors', gdzie C++ 11 jest zastępowany standardem, który chcesz dopasować. –

+0

możliwy duplikat [deklaracji rozmiaru i stałej tablicy C++] (http://stackoverflow.com/questions/25939260/c-array-size-declaration-and-const) – Mark

Odpowiedz

10

Prześlij flagę -pedantic-errors. Pamiętaj o ustawieniu standardu na -std=, na przykład -std=c++14. Działa to również w klangach.

+0

Czy to jest standard? –

+2

Nie, flagi GCC nie są ustandaryzowane. – rightfold

+0

Rzeczywiście, ale wiele z nich jest wspólnych z Clangiem. –