Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A biblioteca SafeInt fornece várias funções que você pode usar sem criar uma instância da classe SafeInt. Se quiser proteger uma única operação matemática contra estouros de inteiro, você pode usar essas funções. Se quiser proteger várias operações matemáticas, você deve criar objetos SafeInt. É mais eficiente criar objetos SafeInt do que usar essas funções várias vezes.
Essas funções permitem comparar ou realizar operações matemáticas em dois tipos diferentes de parâmetros sem antes precisar convertê-los no mesmo tipo.
Cada uma dessas funções tem dois tipos de modelo: T e U. Cada um desses tipos pode ser um tipo booliano, caractere ou integral. Tipos integrais podem ser assinados ou não assinados e ter qualquer tamanho de 8 a 64 bits.
Observação
A última versão dessa biblioteca está localizada em https://github.com/dcleblanc/SafeInt.
Nesta seção
| Função | Descrição |
|---|---|
| SafeAdd | Adiciona dois números e protege contra estouros. |
| SafeCast | Converte um tipo de parâmetro em outro tipo. |
| SafeDivide | Divide dois números e protege contra a divisão por zero. |
| SafeEquals, SafeGreaterThan, SafeGreaterThanEquals, SafeLessThan, SafeLessThanEquals, SafeNotEquals | Compara dois números. Essas funções permitem comparar dois tipos diferentes de números sem alterar seus tipos. |
| SafeModulus | Realiza a operação de módulo em dois números. |
| SafeMultiply | Multiplica dois números juntos e protege contra estouros. |
| SafeSubtract | Subtrai dois números e protege contra estouros. |
Seções relacionadas
| Seção | Descrição |
|---|---|
| SafeInt | A classe SafeInt. |
| SafeIntException | A classe de exceção específica da biblioteca SafeInt. |
SafeAdd
Adiciona dois números de uma maneira que protege contra estouros.
template<typename T, typename U>
inline bool SafeAdd (
T t,
U u,
T& result
) throw ();
Parâmetros
t
[in] O primeiro número a adicionar. Deve ser do tipo T.
u
[in] O segundo número a adicionar. Deve ser do tipo U.
result
[out] O parâmetro em que SafeAdd armazena o resultado.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.
SafeCast
Converte um tipo de número em outro tipo.
template<typename T, typename U>
inline bool SafeCast (
const T From,
U& To
);
Parâmetros
De
[in] O número de origem para converter. Deve ser do tipo T.
Para
[out] Uma referência ao novo tipo de número. Deve ser do tipo U.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.
SafeDivide
Divide dois números de uma maneira que protege contra a divisão por zero.
template<typename T, typename U>
inline bool SafeDivide (
T t,
U u,
T& result
) throw ();
Parâmetros
t
[in] O dividendo. Deve ser do tipo T.
u
[in] O divisor. Deve ser do tipo U.
result
[out] O parâmetro em que SafeDivide armazena o resultado.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.
SafeEquals
Compara dois números para determinar se eles são iguais.
template<typename T, typename U>
inline bool SafeEquals (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número para comparar. Deve ser do tipo T.
u
[in] O segundo número para comparar. Deve ser do tipo U.
Valor de retorno
true se t e u forem iguais, caso contrário false.
Comentários
O método aprimora == porque SafeEquals permite comparar dois tipos diferentes de números.
SafeGreaterThan
Compara dois números.
template<typename T, typename U>
inline bool SafeGreaterThan (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número para comparar. Deve ser do tipo T.
u
[in] O segundo número para comparar. Deve ser do tipo U.
Valor de retorno
true se t for maior que u; caso contrário false.
Comentários
SafeGreaterThan estende o operador de comparação regular, permitindo que você compare dois tipos diferentes de números.
SafeGreaterThanEquals
Compara dois números.
template <typename T, typename U>
inline bool SafeGreaterThanEquals (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número para comparar. Deve ser do tipo T.
u
[in] O segundo número para comparar. Deve ser do tipo U.
Valor de retorno
true se t for maior ou igual a u; caso contrário false.
Comentários
SafeGreaterThanEquals aprimora o operador de comparação padrão porque permite comparar dois tipos diferentes de números.
SafeLessThan
Determina se um número é menor que outro.
template<typename T, typename U>
inline bool SafeLessThan (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número. Deve ser do tipo T.
u
[in] O segundo número. Deve ser do tipo U.
Valor de retorno
true se t for menor que u; caso contrário false.
Comentários
Esse método aprimora o operador de comparação padrão porque SafeLessThan permite comparar dois tipos diferentes de números.
SafeLessThanEquals
Compara dois números.
template <typename T, typename U>
inline bool SafeLessThanEquals (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número para comparar. Deve ser do tipo T.
u
[in] O segundo número para comparar. Deve ser do tipo U.
Valor de retorno
true se t for menor ou igual a u; caso contrário, false.
Comentários
SafeLessThanEquals estende o operador de comparação regular, permitindo que você compare dois tipos diferentes de números.
SafeModulus
Realiza a operação de módulo em dois números.
template<typename T, typename U>
inline bool SafeModulus (
const T t,
const U u,
T& result
) throw ();
Parâmetros
t
[in] O divisor. Deve ser do tipo T.
u
[in] O dividendo. Deve ser do tipo U.
result
[out] O parâmetro em que SafeModulus armazena o resultado.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.
SafeMultiply
Multiplica dois números juntos de uma forma que protege contra estouros.
template<typename T, typename U>
inline bool SafeMultiply (
T t,
U u,
T& result
) throw ();
Parâmetros
t
[in] O primeiro número para multiplicar. Deve ser do tipo T.
u
[in] O segundo número para multiplicar. Deve ser do tipo U.
result
[out] O parâmetro em que SafeMultiply armazena o resultado.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.
SafeNotEquals
Determina se dois números não são iguais.
template<typename T, typename U>
inline bool SafeNotEquals (
const T t,
const U u
) throw ();
Parâmetros
t
[in] O primeiro número para comparar. Deve ser do tipo T.
u
[in] O segundo número para comparar. Deve ser do tipo U.
Valor de retorno
true se t e u não forem iguais, caso contrário, false.
Comentários
O método aprimora != porque SafeNotEquals permite comparar dois tipos diferentes de números.
SafeSubtract
Subtrai dois números de uma maneira que protege contra estouros.
template<typename T, typename U>
inline bool SafeSubtract (
T t,
U u,
T& result
) throw ();
Parâmetros
t
[in] O primeiro número na subtração. Deve ser do tipo T.
u
[in] O número para subtrair de t. Deve ser do tipo U.
result
[out] O parâmetro em que SafeSubtract armazena o resultado.
Valor de retorno
true se não ocorrer erro; false se ocorrer um erro.