Fitur C++ Baru di GCC 15
(developers.redhat.com)- 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
- Sekarang elemen tertentu dalam argumen Variadic Template dapat diakses langsung dengan sintaks
-
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]]
- Kini
-
Menambahkan penjelasan pada fungsi yang dihapus
- Sintaks
= delete("reason")dapat memberikan pesan pada error saat fungsi yang dihapus dipanggil
- Sintaks
-
Variadic Friends
- Dalam kelas template, beberapa tipe kini dapat dideklarasikan sebagai
friendsekaligus - Ini berguna untuk memperkuat kontrol akses seperti pada pola Passkey
- Dalam kelas template, beberapa tipe kini dapat dideklarasikan sebagai
-
constexpr Placement New
std::allocatordan 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, danswitch - Evaluasi kondisi dilakukan oleh variabel internal yang dihasilkan kompiler
- Deklarasi structured binding kini dapat digunakan di dalam kondisi
-
Larangan menghapus tipe yang belum lengkap
- Jika
deleteataudelete[]digunakan pada tipe yang belum lengkap, mode C++26 akan menghasilkan error kompilasi
- Jika
-
Peringatan koma Oxford
- Dalam deklarasi fungsi variadik, pola yang hanya menggunakan
...tanpa, ...akan diperingatkan di C++26
- Dalam deklarasi fungsi variadik, pola yang hanya menggunakan
-
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
- Kode yang membandingkan array dengan
-
Direktif
#embed- Dukungan untuk
#embed, yang memungkinkan data biner disisipkan langsung ke dalam kode sumber
- Dukungan untuk
Belum ada komentar.