SafeInt, fonctions
La bibliothèque SafeInt fournit plusieurs fonctions que vous pouvez utiliser sans créer d’instance de la classe SafeInt. Vous pouvez utiliser ces fonctions si vous souhaitez protéger une seule opération mathématique contre les dépassements d’entiers. Si vous souhaitez protéger plusieurs opérations mathématiques, vous devez créer des objets SafeInt
. Il est plus efficace de créer SafeInt
des objets que d’utiliser ces fonctions plusieurs fois.
Ces fonctions permettent de comparer ou d’effectuer des opérations mathématiques sur deux types de paramètres sans avoir à les convertir vers le même type.
Chacune de ces fonctions dispose de deux types de modèle : T
et U
. Chacun de ces types peut être un type booléen, de caractère ou intégral. Les types de données intégral peuvent être signés ou non signés et de toutes tailles, comprises entre 8 bits et 64 bits.
Remarque
La dernière version de cette bibliothèque se trouve dans https://github.com/dcleblanc/SafeInt.
Dans cette section
Fonction | Description |
---|---|
SafeAdd | Ajoute deux nombres et protège contre le dépassement de capacité. |
SafeCast | Convertit un type de paramètre en un autre type. |
SafeDivide | Divise deux nombres et protège contre la division par zéro. |
SafeEquals, SafeGreaterThan, SafeGreaterThanEquals, SafeLessThan, SafeLessThanEquals, SafeNotEquals | Compare deux nombres. Ces fonctions permettent de comparer deux types de nombres différents sans modifier leurs types. |
SafeModulus | Effectue l’opération de modulo sur deux nombres. |
SafeMultiply | Multiplie deux nombres et protège contre le dépassement de capacité. |
SafeSubtract | Soustrait deux nombres et protège contre le dépassement de capacité. |
Sections connexes
Section | Description |
---|---|
SafeInt | La classe SafeInt . |
SafeIntException | La classe d’exception spécifique à la bibliothèque SafeInt. |
SafeAdd
Ajoute deux nombres afin de protéger contre le dépassement de capacité.
template<typename T, typename U>
inline bool SafeAdd (
T t,
U u,
T& result
) throw ();
Paramètres
t
[in] Premier nombre à ajouter. Il doit être de type T.
u
[in] Deuxième nombre à ajouter. Il doit être de type U.
result
[out] Le paramètre dans lequel SafeAdd
stocke le résultat.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.
SafeCast
Convertit un type de nombre en un autre type.
template<typename T, typename U>
inline bool SafeCast (
const T From,
U& To
);
Paramètres
De
[in] Le nombre de la source à convertir. Il doit être de type T
.
Pour
[out] Une référence au nouveau type du nombre. Il doit être de type U
.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.
SafeDivide
Divise deux nombres afin de protéger contre la division par zéro.
template<typename T, typename U>
inline bool SafeDivide (
T t,
U u,
T& result
) throw ();
Paramètres
t
[in] Dividende. Il doit être de type T.
u
[in] Diviseur. Il doit être de type U.
result
[out] Le paramètre dans lequel SafeDivide
stocke le résultat.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.
SafeEquals
Compare deux nombres pour déterminer s’ils sont égaux.
template<typename T, typename U>
inline bool SafeEquals (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre à comparer. Il doit être de type T.
u
[in] Deuxième nombre à comparer. Il doit être de type U.
Valeur de retour
true
si t et u sont égaux ; sinon false
.
Notes
La méthode améliore ==
car SafeEquals
vous permet de comparer deux types de nombres différents.
SafeGreaterThan
Compare deux nombres.
template<typename T, typename U>
inline bool SafeGreaterThan (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre à comparer. Il doit être de type T
.
u
[in] Deuxième nombre à comparer. Il doit être de type U
.
Valeur de retour
true
si t est supérieur à u ; sinon false
.
Notes
SafeGreaterThan
étend l’opérateur de comparaison régulier en vous permettant de comparer deux types de nombres différents.
SafeGreaterThanEquals
Compare deux nombres.
template <typename T, typename U>
inline bool SafeGreaterThanEquals (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre à comparer. Il doit être de type T
.
u
[in] Deuxième nombre à comparer. Il doit être de type U
.
Valeur de retour
true
si t est supérieur ou égal à u ; sinon false
.
Notes
SafeGreaterThanEquals
améliore l’opérateur de comparaison standard en vous permettant de comparer deux types de nombres différents.
SafeLessThan
Détermine si un nombre est inférieur à un autre.
template<typename T, typename U>
inline bool SafeLessThan (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre. Il doit être de type T
.
u
[in] Deuxième nombre. Il doit être de type U
.
Valeur de retour
true
si t est inférieur à u ; sinon false
.
Notes
La méthode améliore l’opérateur de comparaison standard car SafeLessThan
vous permet de comparer deux types de nombres différents.
SafeLessThanEquals
Compare deux nombres.
template <typename T, typename U>
inline bool SafeLessThanEquals (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre à comparer. Il doit être de type T
.
u
[in] Deuxième nombre à comparer. Il doit être de type U
.
Valeur de retour
true
si t est inférieur ou égal à u ; sinon false
.
Notes
SafeLessThanEquals
étend l’opérateur de comparaison régulier en vous permettant de comparer deux types de nombres différents.
SafeModulus
Effectue l’opération de modulo sur deux nombres.
template<typename T, typename U>
inline bool SafeModulus (
const T t,
const U u,
T& result
) throw ();
Paramètres
t
[in] Diviseur. Il doit être de type T
.
u
[in] Dividende. Il doit être de type U
.
result
[out] Le paramètre dans lequel SafeModulus
stocke le résultat.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.
SafeMultiply
Multiplie deux nombres afin de protéger contre le dépassement de capacité.
template<typename T, typename U>
inline bool SafeMultiply (
T t,
U u,
T& result
) throw ();
Paramètres
t
[in] Premier nombre à multiplier. Il doit être de type T
.
u
[in] Second nombre à multiplier. Il doit être de type U
.
result
[out] Le paramètre dans lequel SafeMultiply
stocke le résultat.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.
SafeNotEquals
Détermine si deux nombres ne sont pas égaux.
template<typename T, typename U>
inline bool SafeNotEquals (
const T t,
const U u
) throw ();
Paramètres
t
[in] Premier nombre à comparer. Il doit être de type T
.
u
[in] Deuxième nombre à comparer. Il doit être de type U
.
Valeur de retour
true
si ce n’est pas le cas et u ne sont pas égaux ; sinon false
.
Notes
La méthode améliore !=
car SafeNotEquals
vous permet de comparer deux types de nombres différents.
SafeSubtract
Soustrait deux nombres afin de protéger contre le dépassement de capacité.
template<typename T, typename U>
inline bool SafeSubtract (
T t,
U u,
T& result
) throw ();
Paramètres
t
[in] Le premier nombre de la soustraction. Il doit être de type T
.
u
[in] Le nombre à soustraire de t. Il doit être de type U
.
result
[out] Le paramètre dans lequel SafeSubtract
stocke le résultat.
Valeur de retour
true
si aucune erreur ne se produit ; false
si une erreur se produit.