Bagikan melalui


Fungsi SafeInt

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 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.