Programování

Překladač GCC GNU přidává podporu C ++ 17

S verzí 7.1 GCC (GNU Compiler Collection), která byla vydána tento týden, získává platforma včasnou podporu pro standard C ++ 17 a vylepšení diagnostiky.

Verze 7.1 má front-end C ++ s experimentální podporou pro všechny specifikace konceptu C ++ 17. The -std = c ++ 1z a -std = gnu ++ 1z možnosti a libstdc ++ jsou podporovány a v knihovně je implementována většina funkcí konceptu knihovny C ++ 17. Starší vydání GCC 6.1 se řídilo standardem C ++ 14.

Série GCC 7 se od předchozích verzí liší tím, že ve výchozím nastavení používá LRA (Local Register Allocator) pro nové cíle a odmítá rozšíření Cilk + do jazyků C a C ++. Některá chování byla také uvolněna, aby se zlepšila kompilace nebo běhový výkon. Některé změny by však mohly při přenosu na GCC 7 „způsobit zármutek“, podle poznámek k vydání, které uvádějí problémy preprocesoru a jazyka C i problémy jazyka C ++, například přísnější pravidla pro šablony. „GCC 7 již nepřijímá různé špatně tvarované konstrukce zahrnující použití šablon,“ uvádí se v poznámkách.

GCC 7.1 také podporuje emitovanou diagnostiku, včetně vylepšených umístění, a optimalizační vylepšení se objevují ve všech intra- a interprocedurálních optimalizacích, optimalizacích časů odkazů a různých cílových koncových bodech, jako jsou doplňky pro povolení spojení obchodů, optimalizace zvedání kódu, rozdělení smyčky, a vylepšení smršťování. Navíc GCC's sanitizer adresy nyní může hlásit použití proměnných poté, co opustí svůj rozsah. GCC lze nakonfigurovat pro odlehčení OpenMP API na GPGPU Nvidia PTX, ale některé kódy, které byly kompilovány se staršími verzemi GCC, mohou vyžadovat úpravy. Kolekce obsahuje rozhraní frontend pro C, C ++, Objective-C, Fortran, Ada a Go.