std:: abs, std:: labs, std:: llabs, std:: imaxabs
|
Definiert in Header
<cstdlib>
|
||
|
Definiert in Header
<cmath>
|
||
|
int
abs
(
int
num
)
;
|
(1) | (constexpr seit C++23) |
|
long
abs
(
long
num
)
;
|
(2) | (constexpr seit C++23) |
|
long
long
abs
(
long
long
num
)
;
|
(3) |
(seit C++11)
(constexpr seit C++23) |
|
Definiert in Header
<cstdlib>
|
||
|
long
labs
(
long
num
)
;
|
(4) | (constexpr seit C++23) |
|
long
long
llabs
(
long
long
num
)
;
|
(5) |
(seit C++11)
(constexpr seit C++23) |
|
Definiert in Header
<cinttypes>
|
||
|
std::
intmax_t
abs
(
std::
intmax_t
num
)
;
|
(6) |
(seit C++11)
(constexpr seit C++23) |
|
std::
intmax_t
imaxabs
(
std::
intmax_t
num
)
;
|
(7) |
(seit C++11)
(constexpr seit C++23) |
Berechnet den absoluten Wert der Ganzzahl num . Das Verhalten ist undefiniert, wenn das Ergebnis nicht durch den Rückgabetyp dargestellt werden kann.
Wenn
std::abs
mit einem vorzeichenlosen integralen Argument aufgerufen wird, das nicht durch
integral promotion
in
int
konvertiert werden kann, ist das Programm fehlerhaft.
|
Überladung
(6)
von
|
(seit C++11) |
Inhaltsverzeichnis |
Parameter
| num | - | Ganzzahlwert |
Rückgabewert
Der absolute Wert von
num
(d.h.
|num|
), falls er darstellbar ist.
Hinweise
In 2's complement Systemen liegt der Absolutwert des negativsten Werts außerhalb des Bereichs, z.B. für den 32-Bit-2's complement Typ int ist INT_MIN gleich - 2147483648 , aber das hypothetische Ergebnis 2147483648 ist größer als INT_MAX , welches 2147483647 beträgt.
Beispiel
#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 }
Ausgabe:
abs(+3) = +3 abs(-3) = +3
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2192 | C++98 |
Überladungen von
std::abs
waren
inkonsistent in zwei Headern deklariert |
deklarierte diese Überladungen
in beiden Headern |
Siehe auch
|
(C++11)
(C++11)
|
Absolutwert eines Gleitkommawerts (
|x|
)
(Funktion) |
|
gibt den Betrag einer komplexen Zahl zurück
(Funktionstemplate) |
|
|
wendet die Funktion
abs
auf jedes Element des valarray an
(Funktionstemplate) |
|
|
C-Dokumentation
für
abs
,
labs
,
llabs
|
|