Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pustaka SafeInt menyediakan beberapa fungsi yang dapat Anda gunakan tanpa membuat instans kelas SafeInt. Jika Anda ingin melindungi satu operasi matematika dari luapan bilangan bulat, Anda dapat menggunakan fungsi-fungsi ini. Jika Anda ingin melindungi beberapa operasi matematika, Anda harus membuat SafeInt objek. Lebih efisien untuk membuat SafeInt objek daripada menggunakan fungsi ini beberapa kali.
Fungsi-fungsi ini memungkinkan Anda membandingkan atau melakukan operasi matematika pada dua jenis parameter yang berbeda tanpa harus mengonversinya ke jenis yang sama terlebih dahulu.
Masing-masing fungsi ini memiliki dua jenis templat: T dan U. Masing-masing jenis ini dapat berupa Boolean, karakter, atau jenis integral. Jenis integral dapat ditandatangani atau tidak ditandatangani dan ukuran apa pun dari 8 bit hingga 64 bit.
Catatan
Versi terbaru pustaka ini terletak di https://github.com/dcleblanc/SafeInt.
Di Bagian Ini
| Fungsi | Deskripsi |
|---|---|
| SafeAdd | Menambahkan dua angka dan melindungi dari luapan. |
| SafeCast | Melemparkan satu jenis parameter ke jenis lain. |
| SafeDivide | Membagi dua angka dan melindungi dari pembagian dengan nol. |
| SafeEquals, SafeGreaterThan, SafeGreaterThanEquals, SafeLessThan, SafeLessThanEquals, SafeNotEquals | Membandingkan dua angka. Fungsi-fungsi ini memungkinkan Anda membandingkan dua jenis angka yang berbeda tanpa mengubah jenisnya. |
| SafeModulus | Melakukan operasi modulus pada dua angka. |
| SafeMultiply | Mengalikan dua angka bersama-sama dan melindungi dari luapan. |
| SafeSubtract | Mengurangi dua angka dan melindungi dari luapan. |
Bagian Terkait
| Bagian | Deskripsi |
|---|---|
| SafeInt | Kelas SafeInt. |
| SafeIntException | Kelas pengecualian khusus untuk pustaka SafeInt. |
SafeAdd
Menambahkan dua angka dengan cara yang melindungi dari luapan.
template<typename T, typename U>
inline bool SafeAdd (
T t,
U u,
T& result
) throw ();
Parameter
t
[di] Angka pertama yang ditambahkan. Ini harus berjenis T.
u
[di] Angka kedua yang akan ditambahkan. Ini harus berjenis U.
result
[out] Parameter tempat SafeAdd menyimpan hasilnya.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.
SafeCast
Melemparkan satu jenis angka ke jenis lain.
template<typename T, typename U>
inline bool SafeCast (
const T From,
U& To
);
Parameter
Dari
[di] Nomor sumber yang akan dikonversi. Ini harus berjenis T.
Untuk
[out] Referensi ke jenis nomor baru. Ini harus berjenis U.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.
SafeDivide
Membagi dua angka dengan cara yang melindungi dari pembagian dengan nol.
template<typename T, typename U>
inline bool SafeDivide (
T t,
U u,
T& result
) throw ();
Parameter
t
[di] Pembagiannya. Ini harus berjenis T.
u
[di] Pembavis. Ini harus berjenis U.
result
[out] Parameter tempat SafeDivide menyimpan hasilnya.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.
SafeEquals
Membandingkan dua angka untuk menentukan apakah angka tersebut sama.
template<typename T, typename U>
inline bool SafeEquals (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama yang dibandingkan. Ini harus berjenis T.
u
[di] Angka kedua untuk dibandingkan. Ini harus berjenis U.
Tampilkan Nilai
true jika t dan u sama; jika tidak false.
Keterangan
Metode ini ditingkatkan == karena SafeEquals memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeGreaterThan
Membandingkan dua angka.
template<typename T, typename U>
inline bool SafeGreaterThan (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama yang dibandingkan. Ini harus berjenis T.
u
[di] Angka kedua untuk dibandingkan. Ini harus berjenis U.
Tampilkan Nilai
true jika t lebih besar dari u; jika tidak false.
Keterangan
SafeGreaterThan memperluas operator perbandingan reguler dengan memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeGreaterThanEquals
Membandingkan dua angka.
template <typename T, typename U>
inline bool SafeGreaterThanEquals (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama yang dibandingkan. Ini harus berjenis T.
u
[di] Angka kedua untuk dibandingkan. Ini harus berjenis U.
Tampilkan Nilai
true jika t lebih besar dari atau sama dengan u; jika tidak false.
Keterangan
SafeGreaterThanEquals meningkatkan operator perbandingan standar karena memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeLessThan
Menentukan apakah satu angka kurang dari angka lainnya.
template<typename T, typename U>
inline bool SafeLessThan (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama. Ini harus berjenis T.
u
[di] Nomor kedua. Ini harus berjenis U.
Tampilkan Nilai
true jika t kurang dari u; jika tidak false.
Keterangan
Metode ini meningkatkan operator perbandingan standar karena SafeLessThan memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeLessThanEquals
Membandingkan dua angka.
template <typename T, typename U>
inline bool SafeLessThanEquals (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama yang dibandingkan. Ini harus berjenis T.
u
[di] Angka kedua untuk dibandingkan. Ini harus berjenis U.
Tampilkan Nilai
true jika t kurang dari atau sama dengan u; jika tidak false.
Keterangan
SafeLessThanEquals memperluas operator perbandingan reguler dengan memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeModulus
Melakukan operasi modulus pada dua angka.
template<typename T, typename U>
inline bool SafeModulus (
const T t,
const U u,
T& result
) throw ();
Parameter
t
[di] Pembavis. Ini harus berjenis T.
u
[di] Pembagiannya. Ini harus berjenis U.
result
[out] Parameter tempat SafeModulus menyimpan hasilnya.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.
SafeMultiply
Mengalikan dua angka bersama-sama dengan cara yang melindungi dari luapan.
template<typename T, typename U>
inline bool SafeMultiply (
T t,
U u,
T& result
) throw ();
Parameter
t
[di] Angka pertama yang akan dikalikan. Ini harus berjenis T.
u
[di] Angka kedua untuk dikalikan. Ini harus berjenis U.
result
[out] Parameter tempat SafeMultiply menyimpan hasilnya.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.
SafeNotEquals
Menentukan apakah dua angka tidak sama.
template<typename T, typename U>
inline bool SafeNotEquals (
const T t,
const U u
) throw ();
Parameter
t
[di] Angka pertama yang dibandingkan. Ini harus berjenis T.
u
[di] Angka kedua untuk dibandingkan. Ini harus berjenis U.
Tampilkan Nilai
true jika tidak dan u tidak sama; jika tidak false.
Keterangan
Metode ini ditingkatkan != karena SafeNotEquals memungkinkan Anda membandingkan dua jenis angka yang berbeda.
SafeSubtract
Mengurangi dua angka dengan cara yang melindungi dari luapan.
template<typename T, typename U>
inline bool SafeSubtract (
T t,
U u,
T& result
) throw ();
Parameter
t
[di] Angka pertama dalam pengurangan. Ini harus berjenis T.
u
[di] Angka yang akan dikurangi dari t. Ini harus berjenis U.
result
[out] Parameter tempat SafeSubtract menyimpan hasilnya.
Tampilkan Nilai
true jika tidak ada kesalahan yang terjadi; false jika terjadi kesalahan.