SafeInt İşlevleri

SafeInt kitaplığı, SafeInt sınıfının bir örneğini oluşturmadan kullanabileceğiniz çeşitli işlevler sağlar. Tek bir matematik işlemini tamsayı taşmasından korumak istiyorsanız, bu işlevleri kullanabilirsiniz. Birden çok matematiksel işlemi korumak istiyorsanız, nesneleri oluşturmanız SafeInt gerekir. Nesneleri oluşturmak SafeInt , bu işlevleri birden çok kez kullanmaktan daha verimlidir.

Bu işlevler, önce bunları aynı türe dönüştürmek zorunda kalmadan iki farklı parametre türü üzerinde matematiksel işlemleri karşılaştırmanıza veya gerçekleştirmenize olanak tanır.

Bu işlevlerin her biri iki şablon türüne sahiptir: T ve U. Bu türlerin her biri Boole, karakter veya tam sayı türünde olabilir. İntegral türleri imzalanabilir veya işaretsiz olabilir ve 8 bit ile 64 bit arasında herhangi bir boyuta sahip olabilir.

Not

Bu kitaplığın en son sürümü konumundadır https://github.com/dcleblanc/SafeInt.

Bu Bölümde

İşlev Açıklama
SafeAdd İki sayı ekler ve taşmalara karşı korur.
SafeCast Bir parametre türünü başka bir türe yazar.
SafeDivide İki sayıyı böler ve sıfıra bölmeye karşı korur.
SafeEquals, SafeGreaterThan, SafeGreaterThanEquals, SafeLessThan, SafeLessThanEquals, SafeNotEquals İki sayıyı karşılaştırır. Bu işlevler, türlerini değiştirmeden iki farklı sayı türünü karşılaştırmanıza olanak tanır.
SafeModulus modulus işlemini iki sayı üzerinde gerçekleştirir.
SafeMultiply İki sayıyı birlikte çarpar ve taşmalara karşı korur.
SafeSubtract İki sayıyı çıkarır ve taşmalara karşı korur.
Bölüm Açıklama
SafeInt Sınıfı SafeInt .
SafeIntException SafeInt kitaplığına özgü özel durum sınıfı.

SafeAdd

Taşmalara karşı koruma sağlayan bir şekilde iki sayı ekler.

template<typename T, typename U>
inline bool SafeAdd (
   T t,
   U u,
   T& result
) throw ();

Parametreler

t
[in] Eklenecek ilk sayı. Bu T türünde olmalıdır.

u
[in] Eklenecek ikinci sayı. Bu U türünde olmalıdır.

sonuç
[out] Sonucu depoladığı SafeAdd parametre.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.

SafeCast

Bir sayı türünü başka bir türe yazar.

template<typename T, typename U>
inline bool SafeCast (
   const T From,
   U& To
);

Parametreler

Başlangıç
[in] Dönüştürülecek kaynak numarası. Bu, türünde Tolmalıdır.

İşlem
[out] Yeni sayı türüne başvuru. Bu, türünde Uolmalıdır.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.

SafeDivide

İki sayıyı sıfıra bölmeye karşı koruyacak şekilde böler.

template<typename T, typename U>
inline bool SafeDivide (
   T t,
   U u,
   T& result
) throw ();

Parametreler

t
[in] Kar payı. Bu T türünde olmalıdır.

u
[in] Bölen. Bu U türünde olmalıdır.

sonuç
[out] Sonucu depoladığı SafeDivide parametre.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.

SafeEquals

Eşit olup olmadıklarını belirlemek için iki sayıyı karşılaştırır.

template<typename T, typename U>
inline bool SafeEquals (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] Karşılaştıracak ilk sayı. Bu T türünde olmalıdır.

u
[in] Karşılaştıracak ikinci sayı. Bu U türünde olmalıdır.

Dönüş Değeri

truet ve u eşitse; değilse false.

Açıklamalar

yöntemi, iki farklı sayı türünü karşılaştırmanıza olanak sağladığından iyileştirir == SafeEquals .

SafeGreaterThan

İki sayıyı karşılaştırır.

template<typename T, typename U>
inline bool SafeGreaterThan (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] Karşılaştıracak ilk sayı. Bu, türünde Tolmalıdır.

u
[in] Karşılaştıracak ikinci sayı. Bu, türünde Uolmalıdır.

Dönüş Değeri

truet u'dan büyükse; değilse false.

Açıklamalar

SafeGreaterThan iki farklı sayı türünü karşılaştırmanıza olanak tanıyarak normal karşılaştırma işlecini genişletir.

SafeGreaterThanEquals

İki sayıyı karşılaştırır.

template <typename T, typename U>
inline bool SafeGreaterThanEquals (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] Karşılaştıracak ilk sayı. Bu, türünde Tolmalıdır.

u
[in] Karşılaştıracak ikinci sayı. Bu, türünde Uolmalıdır.

Dönüş Değeri

truet, u'dan büyük veya buna eşitse; değilse false.

Açıklamalar

SafeGreaterThanEquals iki farklı sayı türünü karşılaştırmanıza olanak sağladığından standart karşılaştırma işlecini geliştirir.

SafeLessThan

Bir sayanın diğerinden küçük olup olmadığını belirler.

template<typename T, typename U>
inline bool SafeLessThan (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] İlk sayı. Bu, türünde Tolmalıdır.

u
[in] İkinci sayı. Bu, türünde Uolmalıdır.

Dönüş Değeri

truet u'dan küçükse; değilse false.

Açıklamalar

Bu yöntem, iki farklı sayı türünü karşılaştırmanıza olanak sağladığından standart karşılaştırma işlecini SafeLessThan geliştirir.

SafeLessThanEquals

İki sayıyı karşılaştırır.

template <typename T, typename U>
inline bool SafeLessThanEquals (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] Karşılaştıracak ilk sayı. Bu, türünde Tolmalıdır.

u
[in] Karşılaştıracak ikinci sayı. Bu, türünde Uolmalıdır.

Dönüş Değeri

truet, u'ya eşit veya ondan küçükse; değilse false.

Açıklamalar

SafeLessThanEquals iki farklı sayı türünü karşılaştırmanıza olanak tanıyarak normal karşılaştırma işlecini genişletir.

SafeModulus

modulus işlemini iki sayı üzerinde gerçekleştirir.

template<typename T, typename U>
inline bool SafeModulus (
   const T t,
   const U u,
   T& result
) throw ();

Parametreler

t
[in] Bölen. Bu, türünde Tolmalıdır.

u
[in] Kar payı. Bu, türünde Uolmalıdır.

sonuç
[out] Sonucu depoladığı SafeModulus parametre.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.

SafeMultiply

Taşmalara karşı koruma sağlayan bir şekilde iki sayıyı bir araya toplar.

template<typename T, typename U>
inline bool SafeMultiply (
   T t,
   U u,
   T& result
) throw ();

Parametreler

t
[in] Çarpmak için ilk sayı. Bu, türünde Tolmalıdır.

u
[in] Çarpmak için ikinci sayı. Bu, türünde Uolmalıdır.

sonuç
[out] Sonucu depoladığı SafeMultiply parametre.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.

SafeNotEquals

İki sayının eşit olup olmadığını belirler.

template<typename T, typename U>
inline bool SafeNotEquals (
   const T t,
   const U u
) throw ();

Parametreler

t
[in] Karşılaştıracak ilk sayı. Bu, türünde Tolmalıdır.

u
[in] Karşılaştıracak ikinci sayı. Bu, türünde Uolmalıdır.

Dönüş Değeri

truet ve u eşit değilse; değilse false.

Açıklamalar

yöntemi, iki farklı sayı türünü karşılaştırmanıza olanak sağladığından iyileştirir != SafeNotEquals .

SafeSubtract

Taşmalara karşı koruma sağlayan bir şekilde iki sayıyı çıkarır.

template<typename T, typename U>
inline bool SafeSubtract (
   T t,
   U u,
   T& result
) throw ();

Parametreler

t
[in] Çıkarmadaki ilk sayı. Bu, türünde Tolmalıdır.

u
[in] T'den çıkarılası sayıdır. Bu, türünde Uolmalıdır.

sonuç
[out] Sonucu depoladığı SafeSubtract parametre.

Dönüş Değeri

true hata oluşmazsa; false hata oluşursa.