A GCC 15 compiler alapértelmezett C++ dialektusa a gnu++20 lett

A GCC fejlesztői bejelentették, hogy a GCC 15 verziótól kezdve a C++ alapértelmezett dialektusa a gnu++20. A változásra vonatkozóan benyújtott commit azt jelzi, hogy a C++20 immár nem számít kísérleti nyelvnek, és a korábbi alapértelmezés, a gnu++17 több mint öt év után leváltásra kerül. A fejlesztők célja, hogy a modern C++20 szabvány adta újítások, mint a coroutines, concepts és modules, könnyebben elérhetők legyenek a napi fejlesztés során, miközben a modules támogatása továbbra is opcionális és kísérleti jellegű marad.

A GCC 15 compiler alapértelmezett C++ dialektusa a gnu++20 lett

Részletes dokumentáció és tesztek

A változtatások a GCC fordító dokumentációit és a tesztelési rendszereit is érinti, így a doc/invoke.texi és doc/standards.texi fájlokból eltávolították az „experimental” megjegyzéseket, és világossá tették, hogy a C++ alapértelmezett nyelve mostantól -std=gnu++20. Az új szabványra történő átálláshoz igazodva frissültek a tesztek és a C++20 szabvány szerinti előírásokra, illetve több helyen helyesbítették a hibakeresési és cikluskezelési kódokat, hogy a modern szabvány funkciói stabilan és megbízhatóan tesztelhetők legyenek.

A frissítés hatása Libstdc++ könyvtárra

A frissítés hatása a libstdc++ könyvtárban is érezhető, melynek köszönhetően a coroutines mostantól alapértelmezés szerint elérhető. A GCC fejlesztői hangsúlyozták, hogy a modules továbbra sem aktiválódik automatikusan, hanem külön opcióval engedélyezhető, így megőrizve a régebbi kódok visszafelé kompatibilitását.

További információk a commitban olvashatóak.