C++Tingkat: Lanjutan7 min
Komputasi Compile-Time dengan constexpr & consteval
Tingkatkan performa aplikasi secara ekstrem dengan memindahkan kalkulasi berat dari waktu eksekusi (runtime) ke saat kompilasi (compile-time) menggunakan kata kunci constexpr dan consteval C++20.
Perbedaan constexpr dan consteval
Pratinjau Terbukaconstexpr menandakan bahwa suatu fungsi atau nilai dapat dievaluasi saat kompilasi jika argumennya konstan. Di C++20, kata kunci consteval (immediate function) mewajibkan evaluasi mutlak terjadi pada compile-time.
Contoh Kode Sintaks
#include <iostream>
// Fungsi constexpr: dapat dihitung saat kompilasi
constexpr unsigned long long faktorial(int n) {
unsigned long long hasil = 1;
for (int i = 2; i <= n; ++i) {
hasil *= i;
}
return hasil;
}
// C++20 consteval: harus selalu dihitung saat kompilasi
consteval int hitungHashKompilasi(int nilaiKunci) {
return (nilaiKunci * 2654435761u) ^ 0x5bf03635;
}
int main() {
constexpr auto hasilFaktorial = faktorial(10); // Dihitung di waktu kompilasi!
constexpr int hashTetap = hitungHashKompilasi(42);
std::cout << "Faktorial(10) [Compile-time]: " << hasilFaktorial << std::endl;
std::cout << "Hash Konstan [Compile-time]: " << hashTetap << std::endl;
return 0;
}Live Compiler Runner
Akses Kursus Wajib Login
Buka Akses Penuh Silabus & Praktikum
Masuk dengan akun GitHub, Google, atau Akses Cepat Developer untuk membuka seluruh materi mendalam, menjalankan compiler interaktif, mengerjakan kuis, dan menyimpan progres belajar Anda.
145+ Modul Lengkap•Tersimpan Otomatis•Sertifikat Kelulusan Resmi