Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Knihovna SafeInt poskytuje několik funkcí, které můžete použít bez vytvoření instance SafeInt třídy. Pokud chcete chránit jednu matematickou operaci před přetečením celého čísla, můžete tyto funkce použít. Pokud chcete chránit více matematických operací, měli byste vytvořit SafeInt objekty. Je efektivnější vytvářet SafeInt objekty, než používat tyto funkce vícekrát.
Tyto funkce umožňují porovnat nebo provádět matematické operace se dvěma různými typy parametrů, aniž byste je museli nejprve převést na stejný typ.
Každá z těchto funkcí má dva typy šablon: T a U. Každý z těchto typů může být logický, znakový nebo celočíselný typ. Celočíselné typy můžou být podepsané nebo nepodepsané a libovolná velikost od 8 bitů do 64 bitů.
Poznámka:
Nejnovější verze této knihovny se nachází na adrese https://github.com/dcleblanc/SafeInt.
V tomto oddílu
| Function | Popis |
|---|---|
| SafeAdd | Sečte dvě čísla a chrání před přetečením. |
| SafeCast | Přetypuje jeden typ parametru na jiný typ. |
| SafeDivide | Vydělí dvě čísla a chrání před dělením nulou. |
| SafeEquals, SafeGreaterThan, SafeGreaterThanEquals, SafeLessThan, SafeLessThanEquals, SafeNotEquals | Porovná dvě čísla. Tyto funkce umožňují porovnat dva různé typy čísel beze změny jejich typů. |
| SafeModulus | Provede operaci modulu se dvěma čísly. |
| SafeMultiply | Vynásobí dvě čísla a chrání před přetečením. |
| SafeSubtract | Odečte dvě čísla a chrání před přetečením. |
Související oddíly
| Oddíl | Popis |
|---|---|
| SafeInt | Třída SafeInt . |
| SafeIntException | Třída výjimky specifická pro knihovnu SafeInt. |
SafeAdd
Sečte dvě čísla způsobem, který chrání před přetečením.
template<typename T, typename U>
inline bool SafeAdd (
T t,
U u,
T& result
) throw ();
Parametry
t
[v] První číslo, které se má přidat. Musí to být typ T.
u
[v] Druhé číslo, které chcete přidat. Musí to být typ U.
výsledek
[ven] Parametr, do kterého SafeAdd se uloží výsledek.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.
SafeCast
Přetypuje jeden typ čísla na jiný typ.
template<typename T, typename U>
inline bool SafeCast (
const T From,
U& To
);
Parametry
Od
[v] Zdrojové číslo, které chcete převést. To musí být typu T.
Na
[ven] Odkaz na nový typ čísla. To musí být typu U.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.
SafeDivide
Vydělí dvě čísla způsobem, který chrání před dělením nulou.
template<typename T, typename U>
inline bool SafeDivide (
T t,
U u,
T& result
) throw ();
Parametry
t
[v] Dělo. Musí to být typ T.
u
[v] Dělitel. Musí to být typ U.
výsledek
[ven] Parametr, do kterého SafeDivide se uloží výsledek.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.
SafeEquals
Porovná dvě čísla a určí, jestli jsou rovny.
template<typename T, typename U>
inline bool SafeEquals (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo, které se má porovnat. Musí to být typ T.
u
[v] Druhé číslo, které chcete porovnat. Musí to být typ U.
Návratová hodnota
true pokud t a u jsou rovny; jinak false.
Poznámky
Tato metoda se vylepšuje == , protože SafeEquals umožňuje porovnat dva různé typy čísel.
SafeGreaterThan
Porovná dvě čísla.
template<typename T, typename U>
inline bool SafeGreaterThan (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo, které se má porovnat. To musí být typu T.
u
[v] Druhé číslo, které chcete porovnat. To musí být typu U.
Návratová hodnota
true je-li t větší než u; jinak false.
Poznámky
SafeGreaterThan rozšiřuje běžný relační operátor tím, že umožňuje porovnat dva různé typy čísel.
SafeGreaterThanEquals
Porovná dvě čísla.
template <typename T, typename U>
inline bool SafeGreaterThanEquals (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo, které se má porovnat. To musí být typu T.
u
[v] Druhé číslo, které chcete porovnat. To musí být typu U.
Návratová hodnota
trueje-li t větší než nebo rovno u; jinak false.
Poznámky
SafeGreaterThanEquals vylepšuje standardní relační operátor, protože umožňuje porovnat dva různé typy čísel.
SafeLessThan
Určuje, zda je jedno číslo menší než jiné.
template<typename T, typename U>
inline bool SafeLessThan (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo. To musí být typu T.
u
[v] Druhé číslo. To musí být typu U.
Návratová hodnota
true je-li t menší než u; jinak false.
Poznámky
Tato metoda vylepšuje standardní relační operátor, protože SafeLessThan umožňuje porovnat dva různé typy čísel.
SafeLessThanEquals
Porovná dvě čísla.
template <typename T, typename U>
inline bool SafeLessThanEquals (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo, které se má porovnat. To musí být typu T.
u
[v] Druhé číslo, které chcete porovnat. To musí být typu U.
Návratová hodnota
trueje-li t menší než nebo rovno u; jinak false.
Poznámky
SafeLessThanEquals rozšiřuje běžný relační operátor tím, že umožňuje porovnat dva různé typy čísel.
SafeModulus
Provede operaci modulu se dvěma čísly.
template<typename T, typename U>
inline bool SafeModulus (
const T t,
const U u,
T& result
) throw ();
Parametry
t
[v] Dělitel. To musí být typu T.
u
[v] Dělo. To musí být typu U.
výsledek
[ven] Parametr, do kterého SafeModulus se uloží výsledek.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.
SafeMultiply
Vynásobí dvě čísla způsobem, který chrání před přetečením.
template<typename T, typename U>
inline bool SafeMultiply (
T t,
U u,
T& result
) throw ();
Parametry
t
[v] První číslo, které se má vynásobit. To musí být typu T.
u
[v] Druhé číslo, které se má vynásobit. To musí být typu U.
výsledek
[ven] Parametr, do kterého SafeMultiply se uloží výsledek.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.
SafeNotEquals
Určuje, jestli se dvě čísla nerovnají.
template<typename T, typename U>
inline bool SafeNotEquals (
const T t,
const U u
) throw ();
Parametry
t
[v] První číslo, které se má porovnat. To musí být typu T.
u
[v] Druhé číslo, které chcete porovnat. To musí být typu U.
Návratová hodnota
true pokud ne a u nejsou rovny; jinak false.
Poznámky
Tato metoda se vylepšuje != , protože SafeNotEquals umožňuje porovnat dva různé typy čísel.
SafeSubtract
Odečte dvě čísla způsobem, který chrání před přetečením.
template<typename T, typename U>
inline bool SafeSubtract (
T t,
U u,
T& result
) throw ();
Parametry
t
[v] První číslo v odčítání. To musí být typu T.
u
[v] Číslo, které se má odečíst od t. To musí být typu U.
výsledek
[ven] Parametr, do kterého SafeSubtract se uloží výsledek.
Návratová hodnota
true pokud nedojde k žádné chybě; false pokud dojde k chybě.