SafeInt — Funkcje

Biblioteka Sejf Int udostępnia kilka funkcji, których można użyć bez tworzenia wystąpienia klasy Sejf Int. Jeśli chcesz chronić pojedynczą operację matematyczną przed przepełnieniem liczb całkowitych, możesz użyć tych funkcji. Jeśli chcesz chronić wiele operacji matematycznych, należy utworzyć SafeInt obiekty. Wydajniejsze jest tworzenie SafeInt obiektów niż wielokrotne używanie tych funkcji.

Te funkcje umożliwiają porównywanie lub wykonywanie operacji matematycznych na dwóch różnych typach parametrów bez konieczności wcześniejszego konwertowania ich na ten sam typ.

Każda z tych funkcji ma dwa typy szablonów: T i U. Każdy z tych typów może być typem logicznym, znakowym lub całkowitym. Typy całkowite mogą być podpisane lub niepodpisane, a dowolny rozmiar z 8 bitów do 64 bitów.

Uwaga

Najnowsza wersja tej biblioteki znajduje się w https://github.com/dcleblanc/SafeIntlokalizacji .

W tej sekcji

Function opis
SafeAdd Dodaje dwie liczby i chroni przed przepełnieniem.
SafeCast Rzutuje jeden typ parametru na inny typ.
SafeDivide Dzieli dwie liczby i chroni przed podziałem przez zero.
Sejf Equals, Sejf GreaterThan, Sejf GreaterThanEquals, Sejf LessThan, Sejf LessThanEquals, Sejf NotEquals Porównuje dwie liczby. Te funkcje umożliwiają porównywanie dwóch różnych typów liczb bez zmieniania ich typów.
SafeModulus Wykonuje operację modulu na dwóch liczbach.
SafeMultiply Mnoży dwie liczby razem i chroni przed przepełnieniem.
SafeSubtract Odejmuje dwie liczby i chroni przed przepełnieniem.
Sekcja opis
Sejf Int Klasa SafeInt .
Sejf IntException Klasa wyjątku specyficzna dla biblioteki Sejf Int.

SafeAdd

Dodaje dwie liczby w sposób, który chroni przed przepełnieniem.

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

Parametry

T
[in] Pierwsza liczba do dodania. Musi to być typ T.

U
[in] Druga liczba do dodania. Musi to być typ U.

Wynik
[out] Parametr, w którym SafeAdd przechowuje wynik.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.

SafeCast

Rzutuje jeden typ liczby na inny typ.

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

Parametry

Od
[in] Numer źródłowy do przekonwertowania. Musi to być typ T.

Do
[out] Odwołanie do nowego typu numeru. Musi to być typ U.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.

SafeDivide

Dzieli dwie liczby w sposób, który chroni przed podziałem przez zero.

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

Parametry

T
[in] Dywidenda. Musi to być typ T.

U
[in] Dzielnika. Musi to być typ U.

Wynik
[out] Parametr, w którym SafeDivide przechowuje wynik.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.

SafeEquals

Porównuje dwie liczby, aby określić, czy są równe.

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

Parametry

T
[in] Pierwsza liczba do porównania. Musi to być typ T.

U
[in] Druga liczba do porównania. Musi to być typ U.

Wartość zwracana

true jeśli t i u są równe; w przeciwnym razie false.

Uwagi

Metoda zwiększa się, == ponieważ SafeEquals umożliwia porównywanie dwóch różnych typów liczb.

SafeGreaterThan

Porównuje dwie liczby.

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

Parametry

T
[in] Pierwsza liczba do porównania. Musi to być typ T.

U
[in] Druga liczba do porównania. Musi to być typ U.

Wartość zwracana

true jeśli wartość t jest większa niż u; w przeciwnym razie false.

Uwagi

SafeGreaterThan rozszerza zwykły operator porównania, umożliwiając porównywanie dwóch różnych typów liczb.

SafeGreaterThanEquals

Porównuje dwie liczby.

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

Parametry

T
[in] Pierwsza liczba do porównania. Musi to być typ T.

U
[in] Druga liczba do porównania. Musi to być typ U.

Wartość zwracana

true jeśli wartość t jest większa niż lub równa u; w przeciwnym razie false.

Uwagi

SafeGreaterThanEquals zwiększa standardowy operator porównania, ponieważ umożliwia porównywanie dwóch różnych typów liczb.

SafeLessThan

Określa, czy jedna liczba jest mniejsza niż inna.

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

Parametry

T
[in] Pierwsza liczba. Musi to być typ T.

U
[in] Druga liczba. Musi to być typ U.

Wartość zwracana

true jeśli wartość t jest mniejsza niż u; w przeciwnym razie false.

Uwagi

Ta metoda zwiększa standardowy operator porównania, ponieważ SafeLessThan umożliwia porównywanie dwóch różnych typów liczb.

SafeLessThanEquals

Porównuje dwie liczby.

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

Parametry

T
[in] Pierwsza liczba do porównania. Musi to być typ T.

U
[in] Druga liczba do porównania. Musi to być typ U.

Wartość zwracana

true jeśli wartość t jest mniejsza niż lub równa u; w przeciwnym razie false.

Uwagi

SafeLessThanEquals rozszerza zwykły operator porównania, umożliwiając porównywanie dwóch różnych typów liczb.

SafeModulus

Wykonuje operację modulu na dwóch liczbach.

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

Parametry

T
[in] Dzielnika. Musi to być typ T.

U
[in] Dywidenda. Musi to być typ U.

Wynik
[out] Parametr, w którym SafeModulus przechowuje wynik.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.

SafeMultiply

Mnoży dwie liczby w sposób, który chroni przed przepełnieniem.

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

Parametry

T
[in] Pierwsza liczba do pomnożenia. Musi to być typ T.

U
[in] Druga liczba do pomnożenia. Musi to być typ U.

Wynik
[out] Parametr, w którym SafeMultiply przechowuje wynik.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.

SafeNotEquals

Określa, czy dwie liczby nie są równe.

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

Parametry

T
[in] Pierwsza liczba do porównania. Musi to być typ T.

U
[in] Druga liczba do porównania. Musi to być typ U.

Wartość zwracana

true jeśli nie i u nie są równe; w przeciwnym razie false.

Uwagi

Metoda zwiększa się, != ponieważ SafeNotEquals umożliwia porównywanie dwóch różnych typów liczb.

SafeSubtract

Odejmuje dwie liczby w sposób, który chroni przed przepełnieniem.

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

Parametry

T
[in] Pierwsza liczba w odejmach. Musi to być typ T.

U
[in] Liczba do odejmowania od t. Musi to być typ U.

Wynik
[out] Parametr, w którym SafeSubtract przechowuje wynik.

Wartość zwracana

true jeśli nie wystąpi błąd; false jeśli wystąpi błąd.