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 Terbuka

constexpr 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