C++で数値の絶対を求めるにはabs関数を使用します。abs関数には、扱う型によっていくつかのものが多重定義されています。使用するヘッダも異なりますので注意が必要です。

整数

整数の絶対値を求めるには<cstdlib>ヘッダをインクルードします。

整数用のabs関数では、実引数がその型の表現範囲における最小値(int 型ではINT_MIN)の場合には未定義の動作を引き起こすことがあります。この現象は、負の値の内部表現が2の補数の場合に起こります(現存する処理系のほぼすべてが該当します)。

整数用のabs関数としては、int型版とlong型版があります。long型版を明示的に呼び出すにはlabs関数を使うこともできます。C++11以降であれば、long long型版のabs関数もあります。long long型版を明示的に呼び出すにはllabs関数を使うこともできます。

浮動小数点数

浮動小数点数用のabs関数を呼び出すには、<cmath>ヘッダをインクルードします。

浮動小数点数用のabs関数としては、float型版、double型版、long double型版の3種類が多重定義されています。abs関数の代わりにfabs関数を使った場合も同じ意味になります。

複素数

複素数すなわちcomplexクラステンプレート用のabs関数は、complexクラステンプレートと同じ<complex>ヘッダで宣言されています。

実引数依存の名前検索が働きますので、std::absではなく、単にabsとするだけでも呼び出すことができます。