C ++ 20 menerima persetujuan teknis akhir

Setelah memperoleh persetujuan teknis akhir dari ISO pada 4 September, C ++ 20 diharapkan akan dipublikasikan secara resmi pada akhir tahun ini, memperkenalkan fitur-fitur baru seperti modul dan coroutine.

Didesain pada 1979 untuk pemrograman sistem, C ++ tetap menjadi bahasa yang vital. C ++ bahkan ditemukan sebagai bahasa dengan pertumbuhan tercepat di Indeks Tiobe pada September 2020, di mana ia menempati urutan keempat di belakang C, Java, dan Python. Tiobe mengutip spesifikasi C ++ 20 sebagai salah satu faktor yang meningkatkan bahasa tersebut.

Kemampuan baru di C ++ 20 meliputi:

  • Modul, memungkinkan pemrogram untuk menggunakan komponen modular.
  • Konsep, digunakan untuk menentukan persyaratan template dan mendukung pemrograman generik. Konsep menjanjikan peningkatan kualitas kode.
  • Pustaka sinkronisasi, untuk dukungan yang lebih baik dari kontrol perangkat keras yang lebih terperinci.
  • Peningkatan komputasi waktu kompilasi.
  • Coroutine, yang menggeneralisasi subrutin untuk digunakan dalam multi-tasking nonpreemptive. Namun, dukungan standar untuk coroutine di pustaka standar masih kurang. Dukungan ini diincar untuk C ++ 23.
  • Rentang, yang menyediakan komponen untuk menangani rentang elemen.
  • Makro uji fitur, sekumpulan makro yang sesuai dengan fitur bahasa dan pustaka dari C ++ 11 atau yang lebih baru.
  • Nilai hash yang telah dihitung sebelumnya dalam pencarian.
  • Pernyataan ekspansi untuk mengaktifkan pengulangan waktu kompilasi pernyataan untuk setiap elemen tupel, larik, kelas, paket parameter, atau rentang.
  • Operasi monadik untuk std::optionalcode.
  • Pembuatan objek secara implisit untuk manipulasi tingkat rendah.
  • Peningkatan pengenalan peka konteks importdan moduleuntuk membantu alat non-kompilator menentukan dependensi build.
  • Algoritme jarak baru.

Kemampuan kontrak yang diharapkan dalam C ++ 20, untuk menentukan prasyarat, pascakondisi, dan pernyataan, telah dihapus. Kontrak sekarang ditandai sebagai item C ++ 23, meskipun mungkin juga tidak berhasil masuk ke rilis itu.