4 poin oleh GN⁺ 2025-04-27 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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.

Belum ada komentar.