Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 2.47 KB

File metadata and controls

80 lines (61 loc) · 2.47 KB

imaxdiv

  • cinttypes[meta header]
  • std[meta namespace]
  • function[meta id-type]
  • cpp11[meta cpp]
namespace std {
  imaxdiv_t
    imaxdiv(intmax_t numer,
            intmax_t denom);  // (1) C++11
  constexpr imaxdiv_t
    imaxdiv(intmax_t numer,
            intmax_t denom);  // (1) C++23

  imaxdiv_t
    div(intmax_t numer,
        intmax_t denom);      // (2) C++11
  constexpr imaxdiv_t
    div(intmax_t numer,
        intmax_t denom);      // (2) C++23
}
  • imaxdiv_t[link imaxdiv_t.md]
  • intmax_t[link /reference/cstdint/intmax_t.md]

概要

最大幅の符号付き整数型 intmax_t に対して、numer / denomnumer % denomの計算をひとつの操作で行う。imaxdiv は integer maximum division(最大幅整数の除算)の略。

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

戻り値

imaxdiv_t型オブジェクトのquotに商、remに剰余を代入して返す。

結果のどちらかがintmax_tで表現できない場合、動作は未定義である。

備考

  • (2) : このオーバーロードは、intmax_tが拡張整数型である場合にのみ宣言される。(intmax_tlonglong longのような標準の整数型である場合、<cstdlib>divのオーバーロードと重複するため宣言されない。)

#include <iostream>
#include <cinttypes>

int main()
{
  std::imaxdiv_t x = std::imaxdiv(17, 5);
  std::cout << x.quot << std::endl;
  std::cout << x.rem << std::endl;
}
  • std::imaxdiv[color ff0000]
  • std::imaxdiv_t[link imaxdiv_t.md]

出力

3
2

バージョン

言語

  • C++11

関連項目

参照