C++ Extern Constexpr Function

4 min read Jul 03, 2024
C++ Extern Constexpr Function

C++ Extern Constexpr Functions

Dalam C++, extern constexpr adalah kombinasi dari dua kata kunci yang memberikan kemampuan untuk mendeklarasikan fungsi yang dapat dihitung pada waktu kompilasi dan juga diakses dari unit kompilasi lain.

Apa itu constexpr?

constexpr adalah kata kunci yang menyatakan bahwa sebuah fungsi atau variabel dapat dihitung pada waktu kompilasi. Ini berarti bahwa nilai fungsi atau variabel ditentukan saat program dikompilasi, bukan saat program dijalankan. Fungsi constexpr harus memenuhi syarat berikut:

  • Harus mengembalikan nilai konstan.
  • Badannya harus berisi kode yang dapat dievaluasi pada waktu kompilasi.
  • Harus dideklarasikan dengan kata kunci constexpr.

Apa itu extern?

extern adalah kata kunci yang menyatakan bahwa variabel atau fungsi didefinisikan di unit kompilasi lain. Ini memungkinkan kita untuk menggunakan variabel atau fungsi tersebut dalam unit kompilasi saat ini tanpa mendefinisikannya di sana.

Apa itu extern constexpr Function?

Fungsi extern constexpr memungkinkan kita untuk mendeklarasikan fungsi yang dihitung pada waktu kompilasi dan juga dapat diakses dari unit kompilasi lain. Ini berarti bahwa fungsi tersebut dapat digunakan dalam ekspresi waktu kompilasi dan juga dapat dipanggil dari unit kompilasi lain yang mendeklarasikannya.

Contoh:

// File: my_functions.cpp
#include 

extern constexpr int square(int x) {
  return x * x;
}

// File: main.cpp
#include 
#include "my_functions.cpp" 

int main() {
  constexpr int a = square(5); // Dihitung pada waktu kompilasi
  std::cout << a << std::endl; // Output: 25

  int b = square(7); // Dihitung pada waktu runtime
  std::cout << b << std::endl; // Output: 49

  return 0;
}

Dalam contoh ini, fungsi square dideklarasikan sebagai extern constexpr dalam file my_functions.cpp. Ini berarti bahwa fungsi tersebut dapat dihitung pada waktu kompilasi dan dapat diakses dari unit kompilasi lain, dalam hal ini file main.cpp.

Manfaat extern constexpr Function:

  • Meningkatkan kinerja: Dengan menghitung nilai pada waktu kompilasi, kita dapat menghindari pemanggilan fungsi pada waktu runtime, yang menghemat waktu dan sumber daya.
  • Membuat kode lebih mudah dibaca: Dengan menggunakan constexpr functions, kita dapat membuat kode lebih mudah dibaca dan dipahami, karena nilai fungsi dapat diketahui secara langsung pada waktu kompilasi.
  • Menghindari kesalahan runtime: Dengan menggunakan constexpr functions, kita dapat menghindari kesalahan runtime yang dapat terjadi jika fungsi dipanggil dengan nilai yang tidak valid.

Kesimpulan:

Fungsi extern constexpr adalah alat yang sangat berguna dalam C++ yang memungkinkan kita untuk mendeklarasikan fungsi yang dapat dihitung pada waktu kompilasi dan diakses dari unit kompilasi lain. Ini memberikan keuntungan besar dalam hal kinerja, keterbacaan kode, dan pencegahan kesalahan runtime.

Latest Posts