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.