Penyusun GCC GNU menambah sokongan C ++ 17

Dengan versi 7.1 GCC (GNU Compiler Collection), yang dikeluarkan minggu ini, platform mendapat sokongan awal untuk peningkatan standard dan diagnostik C ++ 17.

Versi 7.1 mempunyai bahagian depan C ++ dengan sokongan eksperimen untuk semua spesifikasi draf C ++ 17. Pilihan -std=c++1zdan -std=gnu++1zpilihan libstdc++disokong, dan perpustakaan mempunyai kebanyakan ciri draf perpustakaan C ++ 17 yang dilaksanakan. Pelepasan GCC 6.1 sebelumnya mematuhi standard C ++ 14.

Siri GCC 7 berbeza dengan keluaran sebelumnya dengan menggunakan LRA (Local Register Allocator) secara lalai untuk sasaran baru dan tidak menggunakan pelanjutan Cilk + ke bahasa C dan C ++. Juga, beberapa tingkah laku telah dilonggarkan untuk meningkatkan prestasi penyusunan atau runtime. Namun, beberapa perubahan dapat "menimbulkan kesedihan" ketika melakukan port ke GCC 7, menurut catatan siaran, yang menyebut masalah praprosesor dan C, serta masalah bahasa C ++, seperti peraturan yang lebih ketat untuk templat. "GCC 7 tidak lagi menerima pelbagai konstruk yang tidak sempurna yang melibatkan penggunaan templat," kata catatan itu.

GCC 7.1 juga meningkatkan diagnostik yang dipancarkan, termasuk lokasi yang lebih baik, dan peningkatan pengoptimum muncul di semua pengoptimuman intra dan interprosedural, pengoptimuman waktu pautan, dan berbagai hujung belakang sasaran, seperti penambahan pas penggabungan kedai, pengoptimuman penggabungan kod, pemisahan gelung, dan peningkatan penyusutan. Selain itu, pembersih alamat GCC kini dapat melaporkan penggunaan pemboleh ubah setelah mereka meninggalkan ruang lingkupnya. GCC dapat dikonfigurasi untuk pemuatan OpenMP API ke GPGPU Nvidia PTX, tetapi beberapa kod yang disusun dengan versi GCC yang lebih lama mungkin memerlukan penyesuaian. Koleksi ini merangkumi hujung depan untuk C, C ++, Objective-C, Fortran, Ada, dan Go.