Kompiler GCC GNU menambahkan dukungan C ++ 17

Dengan versi 7.1 dari GCC (GNU Compiler Collection), yang dirilis minggu ini, platform mendapatkan dukungan awal untuk standar C ++ 17 dan peningkatan diagnostik.

Versi 7.1 memiliki front end C ++ dengan dukungan eksperimental untuk semua spesifikasi draf C ++ 17. The -std=c++1zdan -std=gnu++1zpilihan dan libstdc++didukung, dan perpustakaan memiliki paling C ++ 17 rancangan perpustakaan fitur diimplementasikan. Rilis GCC 6.1 sebelumnya mematuhi standar C ++ 14.

Seri GCC 7 berbeda dari rilis sebelumnya dengan menggunakan LRA (Local Register Allocator) secara default untuk target baru dan menghentikan ekstensi Cilk + ke bahasa C dan C ++. Selain itu, beberapa perilaku telah dilonggarkan untuk meningkatkan kompilasi atau kinerja runtime. Namun, beberapa perubahan dapat "menyebabkan kesedihan" saat melakukan porting ke GCC 7, menurut catatan rilis, yang mengutip masalah preprocessor dan C, serta masalah bahasa C ++, seperti aturan yang lebih ketat untuk template. "GCC 7 tidak lagi menerima berbagai konstruksi berbentuk buruk yang melibatkan penggunaan template," kata catatan itu.

GCC 7.1 juga meningkatkan diagnostik yang dipancarkan, termasuk lokasi yang ditingkatkan, dan peningkatan pengoptimal muncul di semua pengoptimalan intra- dan antar-prosedur, pengoptimalan waktu tautan, dan berbagai ujung belakang target, seperti penambahan pass penggabungan toko, pengoptimalan pengangkat kode, pemisahan loop, dan peningkatan penyusutan. Selain itu, pembersih alamat GCC sekarang dapat melaporkan penggunaan variabel setelah keluar dari cakupannya. GCC dapat dikonfigurasi untuk OpenMP API yang dibongkar ke Nvidia PTX GPGPU, tetapi beberapa kode yang dikompilasi dengan versi GCC yang lebih lama mungkin memerlukan penyesuaian. Koleksinya mencakup ujung depan untuk C, C ++, Objective-C, Fortran, Ada, dan Go.