Skip to content

Latest commit

 

History

History
96 lines (77 loc) · 2.32 KB

div.md

File metadata and controls

96 lines (77 loc) · 2.32 KB

div

  • cstdlib[meta header]
  • std[meta namespace]
  • function[meta id-type]
namespace std {
  div_t
    div(int numer,
        int denom);         // (1) C++03
  constexpr div_t
    div(int numer,
        int denom);         // (1) C++23

  ldiv_t
    div(long numer,
        long denom);        // (2) C++03
  constexpr ldiv_t
    div(long numer,
        long denom);        // (2) C++23

  lldiv_t
    div(long long numer,
        long long denom);   // (3) C++03
  constexpr lldiv_t
    div(long long numer,
        long long denom);   // (3) C++23

  ldiv_t
    ldiv(long numer,
         long denom);       // (4) C++03
  constexpr ldiv_t
    ldiv(long numer,
         long denom);       // (4) C++23

  lldiv_t
    lldiv(long long numer,
          long long denom); // (5) C++11
  constexpr lldiv_t
    lldiv(long long numer,
          long long denom); // (5) C++23
}
  • div_t[link div_t.md]
  • ldiv_t[link ldiv_t.md]
  • lldiv_t[link lldiv_t.md]

概要

numer / denomnumer % denomの計算をひとつの操作で行う。

  • (1) : int型のオーバーロード
  • (2) : long型のオーバーロード
  • (3) : long long型のオーバーロード
  • (4) : long型規定
  • (5) : long long型規定

戻り値

戻り値型となるクラスのquotに商、remに剰余を代入して返す。

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

#include <iostream>
#include <cstdlib>

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

出力

2
1

備考

特定の環境では、早期に constexpr 対応されている場合がある:

  • GCC 4.6.1 以上

参照