最終更新日時(UTC):
が更新

履歴 編集

function
<chrono>

std::chrono::operator-(C++20)

namespace std::chrono {
  constexpr day operator-(const day& x, const days& y) noexcept; // (1) C++20
  constexpr days operator-(const day& x, const day& y) noexcept; // (2) C++20
}

概要

dayの減算を行う。

  • (1) : dayから時間間隔を減算する
  • (2) : day同士の差を求める

戻り値

  • (1) : return x + -y;
  • (2) : return days{static_cast<int>(static_cast<unsigned int>(x)) - static_cast<int>(static_cast<unsigned int>(y))};

例外

投げない

備考

  • monthweekdayと違い、[1, 31]の範囲では循環しない
  • (2)は減算の結果として負数になる場合、負数として差が求まる

#include <cassert>
#include <chrono>

namespace chrono = std::chrono;

int main()
{
  assert(chrono::day{31} - chrono::days{2} == chrono::day{29});
  assert(chrono::day{1} - chrono::day{3} == chrono::days{-2});
}

出力

バージョン

言語

  • C++20

処理系

  • Clang: 8.0
  • GCC: (9.2時点で実装なし)
  • Visual C++: (2019 Update 3時点で実装なし)