- GCC 15 menambahkan banyak fitur C++26, serta meningkatkan beberapa fitur C++23
- Fitur utama yang ditambahkan mencakup Pack Indexing, Variadic Friends, penjelasan alasan penghapusan, dan pernyataan kondisi dengan structured binding
- Opsi kompiler dan peringatan baru juga diperkenalkan untuk meningkatkan pengalaman pengembang
- Dukungan untuk modul C++ diperkuat, dan optimasi kecepatan kompilasi template telah dilakukan
- GCC 15 diadopsi sebagai kompiler bawaan Fedora 42, dan segera akan tersedia juga di Red Hat GCC Toolset
Fitur C++ Baru di GCC 15
- GCC 15.1 dirilis pada 25 April 2025 dan mulai mengadopsi fitur C++26 secara serius
- Standar bawaan masih
gnu++17, dan fitur terbaru bisa diaktifkan dengan -std=c++23, -std=c++26, dan sebagainya
- Fitur C++20, C++23, dan C++26 masih bersifat eksperimental (experimental)
Fitur Utama C++26
-
Pack Indexing
- Sekarang elemen tertentu dalam argumen Variadic Template dapat diakses langsung dengan sintaks
pack...[N]
- Ini memungkinkan referensi yang lebih rapi ke argumen pertama dan sebagainya tanpa trik pengulangan
-
Penetapan atribut pada Structured Bindings
- Kini
[[attribute]] dapat diterapkan secara terpisah pada masing-masing variabel hasil structured binding
- Misalnya, hanya variabel binding tertentu yang dapat diberi
[[deprecated]]
-
Menambahkan penjelasan pada fungsi yang dihapus
- Sintaks
= delete("reason") dapat memberikan pesan pada error saat fungsi yang dihapus dipanggil
-
Variadic Friends
- Dalam kelas template, beberapa tipe kini dapat dideklarasikan sebagai
friend sekaligus
- Ini berguna untuk memperkuat kontrol akses seperti pada pola Passkey
-
constexpr Placement New
std::allocator dan placement new kini dapat digunakan dalam konteks constexpr
-
Menggunakan structured binding dalam pernyataan kondisi
- Deklarasi structured binding kini dapat digunakan di dalam kondisi
if, while, dan switch
- Evaluasi kondisi dilakukan oleh variabel internal yang dihasilkan kompiler
-
Larangan menghapus tipe yang belum lengkap
- Jika
delete atau delete[] digunakan pada tipe yang belum lengkap, mode C++26 akan menghasilkan error kompilasi
-
Peringatan koma Oxford
- Dalam deklarasi fungsi variadik, pola yang hanya menggunakan
... tanpa , ... akan diperingatkan di C++26
-
Penghapusan perbandingan array
- Kode yang membandingkan array dengan
== akan diperlakukan sebagai error
- Pada C++20 ini sebelumnya hanya peringatan, tetapi kini ditingkatkan menjadi error kompilasi dalam mode C++26
-
Direktif #embed
- Dukungan untuk
#embed, yang memungkinkan data biner disisipkan langsung ke dalam kode sumber
Belum ada komentar.