std:: abs, std:: labs, std:: llabs, std:: imaxabs
|
Défini dans l'en-tête
<cstdlib>
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
int
abs
(
int
num
)
;
|
(1) | (constexpr depuis C++23) |
|
long
abs
(
long
num
)
;
|
(2) | (constexpr depuis C++23) |
|
long
long
abs
(
long
long
num
)
;
|
(3) |
(depuis C++11)
(constexpr depuis C++23) |
|
Défini dans l'en-tête
<cstdlib>
|
||
|
long
labs
(
long
num
)
;
|
(4) | (constexpr depuis C++23) |
|
long
long
llabs
(
long
long
num
)
;
|
(5) |
(depuis C++11)
(constexpr depuis C++23) |
|
Défini dans l'en-tête
<cinttypes>
|
||
|
std::
intmax_t
abs
(
std::
intmax_t
num
)
;
|
(6) |
(depuis C++11)
(constexpr depuis C++23) |
|
std::
intmax_t
imaxabs
(
std::
intmax_t
num
)
;
|
(7) |
(depuis C++11)
(constexpr depuis C++23) |
Calcule la valeur absolue du nombre entier num . Le comportement est indéfini si le résultat ne peut pas être représenté par le type de retour.
Si
std::abs
est appelé avec un argument entier non signé qui ne peut pas être converti en
int
par
promotion entière
, le programme est mal formé.
|
La surcharge
(6)
de
|
(depuis C++11) |
Table des matières |
Paramètres
| num | - | valeur entière |
Valeur de retour
La valeur absolue de
num
(c'est-à-dire
|num|
), si elle est représentable.
Notes
Dans les systèmes en complément à 2 , la valeur absolue de la valeur la plus négative est hors plage, par exemple pour le type en complément à 2 sur 32 bits int , INT_MIN vaut - 2147483648 , mais le résultat attendu 2147483648 est supérieur à INT_MAX , qui vaut 2147483647 .
Exemple
#include <climits> #include <cstdlib> #include <iostream> int main() { std::cout << std::showpos << "abs(+3) = " << std::abs(3) << '\n' << "abs(-3) = " << std::abs(-3) << '\n'; // std::cout << std::abs(INT_MIN); // undefined behavior on 2's complement systems }
Sortie :
abs(+3) = +3 abs(-3) = +3
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 2192 | C++98 |
les surcharges de
std::abs
étaient
déclarées de manière incohérente dans deux en-têtes |
déclaré ces surcharges
dans les deux en-têtes |
Voir aussi
|
(C++11)
(C++11)
|
valeur absolue d'une valeur à virgule flottante (
|x|
)
(fonction) |
|
retourne la magnitude d'un nombre complexe
(modèle de fonction) |
|
|
applique la fonction
abs
à chaque élément du valarray
(modèle de fonction) |
|
|
Documentation C
pour
abs
,
labs
,
llabs
|
|