Ist GCC bereit für C ++ 14 Produktionscode?

8

In dieser Webseite ist die Unterstützung von GCC für den ISO C ++ 14-Standard definiert " experimentell ".

Da ich einige der Verbesserungen von C ++ 14 in C ++ 11 (zB std::make_unique und generische lambdas) in meinem C ++ Code verwenden möchte, kann ich die Option -std=c++14 mit GCC 4.9 verwenden für Produktionscode, oder ist der aktuelle GCC / C ++ 14 Status Art wie "Beta" und so GCC / C ++ 14 nicht bereit für Produktionscode?

    
Mr.C64 09.03.2015, 01:20
quelle

1 Antwort

5
  

ist der aktuelle GCC / C ++ 14-Status-Typ wie "Beta" und daher ist GCC / C ++ 14 nicht für den Produktionscode bereit?

Es hängt davon ab, welche Funktionen Sie verwenden. make_unique ist sehr einfach, einfach zu implementieren und sollte sicher sein.

Einige der anderen neuen Funktionen (insbesondere die Kernsprachenfunktionen) haben viel mehr Arbeit in Anspruch genommen und könnten mehr Fehler enthalten, die darauf warten, gefunden und behoben zu werden.

Also gibt es keine einzige Antwort "es ist fertig" oder "es ist nicht bereit".

Es ist jedoch wichtig zu wissen, dass, während es immer noch als experimentell bezeichnet wird, nicht versucht wird, die Abwärtskompatibilität zwischen GCC 4.x und GCC 5 aufrechtzuerhalten. Also, wenn Sie C ++ 11 Code mit GCC 4.8 gebaut haben, müssen Sie alles neu kompilieren, wenn Sie mit anderen C ++ 11 / C ++ 14 Objekten, die mit 4.9 gebaut wurden, verlinken möchten, und auch wenn Sie zu GCC 5 wechseln : kompilieren Sie alle Objekte neu, die C ++ 11 oder C ++ 14 verwenden (weil Typen wie std::tuple das Datenlayout in GCC 5 geändert haben).

Für C ++ 03 Code ändern wir nicht die Definitionen zwischen den Releases, also sind sie stabil.

    
Jonathan Wakely 10.03.2015, 21:22
quelle

Tags und Links