Skip to content

Latest commit

 

History

History
67 lines (49 loc) · 2.33 KB

File metadata and controls

67 lines (49 loc) · 2.33 KB

imaxabs

  • cinttypes[meta header]
  • std[meta namespace]
  • function[meta id-type]
  • cpp11[meta cpp]
namespace std {
  intmax_t imaxabs(intmax_t j);           // (1) C++11
  constexpr intmax_t imaxabs(intmax_t j); // (1) C++23

  intmax_t abs(intmax_t j);               // (2) C++11
  constexpr intmax_t abs(intmax_t j);     // (2) C++23
}
  • intmax_t[link /reference/cstdint/intmax_t.md]

概要

最大幅の符号付き整数型 intmax_t の絶対値を求める。imaxabs は integer maximum absolute value(最大幅整数の絶対値)の略。

  • (1) : intmax_tに対するオーバーロード。
  • (2) : (1)と同じ機能を持つ、absという名前のオーバーロード。

戻り値

引数 j の絶対値を返す。

備考

  • (2) : このオーバーロードは、intmax_tが拡張整数型である場合にのみ宣言される。(intmax_tlonglong longのような標準の整数型である場合、<cstdlib>absのオーバーロードと重複するため宣言されない。)
  • jの絶対値がintmax_tで表現できない場合、動作は未定義である。
  • 一般的な2の補数表現のシステムにおいて、intmax_tの最小値の絶対値は、表現できる最大値よりも1大きくなってしまうため、この未定義動作に該当する。

#include <iostream>
#include <cinttypes>

int main()
{
  std::intmax_t x = std::imaxabs(-1234);
  std::cout << x << std::endl;
}
  • std::imaxabs[color ff0000]

出力

1234

バージョン

言語

  • C++11

関連項目

参照