2011-12-23 17 views
11

Pobrałem i zbudowałem gcc 4.6.2. Uważam, że w przypadku funkcji C++ 11 nadal potrzebna jest opcja linii poleceń -std=c++0x. Dlaczego? Czy nie ma domyślnie go wspierać?Dlaczego "gt = C++ 0x" jest nadal potrzebny dla g ++ 4.6.2?

$ g++ --version 
    g++ (GCC) 4.6.2 
    Copyright (C) 2011 Free Software Foundation, Inc. 
    This is free software; see the source for copying conditions. There is NO 
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+1

Interesujące pytanie. Inne kompilatory (VC10) domyślnie uwzględniły nowe funkcje. Naprawdę zastanawiam się, dlaczego wzięli tutaj różne ścieżki. – ereOn

+4

Jestem bardziej zirytowany tym, że domyślnie nie ma nawet '-std = C++ 98' –

+0

Keep It Simple, Stupid. Chcesz użyć innego standardu? Określ to. Lub nawet zawsze określ standard, którego chcesz użyć. Jeśli nie masz na to ochoty, użyj IDE, który skonfiguruje go automatycznie. Lub ponownie użyj dodatkowego pliku konfiguracyjnego Makefile. – Geoffroy

Odpowiedz

11

Ponieważ

  • C++ 11 jest tylko 4 miesiące i obsługa jest daleka od ukończenia lub przetestowane
  • zmianę domyślnego bez wielkiego zapowiedzi i faza przygotowawcza dla ludzi nie jest miła
  • Nie jest jasne, czy domyślne ustawienie kiedykolwiek się zmieni (patrz -std = C99).
+0

I nie zapominajmy że seria GCC 4.6 ma prawie 9 miesięcy i nie dokonaliby większych zmian mniej niż 5 miesięcy wcześniej. (Wersja 4.6.2 może nie być tak stara, ale to tylko poprawki błędów.) – ams

+1

@ams: Rzeczywiście, brałem to jako oczywiste, ale prawdopodobnie warto o tym wspomnieć. – PlasmaHH

2

jest nadal potrzebne, i prawdopodobnie pozostanie w ten sposób w dającej się przewidzieć przyszłości, ponieważ C++11 has incompatibilities with C++03. Zmiana G ++ na kompilację C++ 11 domyślnie przerwie wiele istniejącego kodu.

+2

Naprawdę * dużo * istniejącego kodu.Komitet wykonał dobrą robotę, aby zminimalizować ilość istniejącego kodu, który się zepsuł. –

+2

@ R.MartinhoFernandes, koderowie wykonali świetną robotę, wręcz przeciwnie! –

Powiązane problemy