- chrono[meta header]
- std::chrono[meta namespace]
- function[meta id-type]
- cpp20[meta cpp]
namespace std::chrono {
constexpr year operator-(const year& x, const years& y) noexcept; // (1) C++20
constexpr years operator-(const year& x, const year& y) noexcept; // (2) C++20
}yearの減算を行う。
- (1) :
yearから時間間隔を減算する - (2) :
year同士の差を求める
- (1) :
return x + -y; - (2) :
return years{static_cast<int>(x) - static_cast<int>(y)};
投げない
- (2)は減算の結果として負数になる場合、負数として差が求まる
#include <cassert>
#include <chrono>
namespace chrono = std::chrono;
int main()
{
assert(chrono::year{2020} - chrono::years{3} == chrono::year{2017});
assert(chrono::year{2020} - chrono::year{2017} == chrono::years{3});
}- C++20
- Clang: 8.0
- GCC: (9.2時点で実装なし)
- Visual C++: (2019 Update 3時点で実装なし)