- chrono[meta header]
- std::chrono[meta namespace]
- function[meta id-type]
- cpp20[meta cpp]
namespace std::chrono {
constexpr bool operator==(const leap_second& x,
const leap_second& y) noexcept; // (1) C++20
template <class Duration>
constexpr bool operator==(const leap_second& x,
const sys_time<Duration>& y) noexcept; // (2) C++20
}- sys_time[link /reference/chrono/sys_time.md]
等値比較を行う。
- (1) :
leap_secondオブジェクト同士の等値比較を行う - (2) :
leap_secondオブジェクトとsys_timeオブジェクトの等値比較を行う
-
(1) :
return x.date() == y.date();- date()[link date.md]
-
(2) :
return x.date() == y;- x.date()[link date.md]
投げない
- この演算子により、
operator!=が使用可能になる
#include <iostream>
#include <chrono>
namespace chrono = std::chrono;
using namespace std::chrono_literals;
// うるう秒が挿入された日かを判定
bool is_leap_second_day(chrono::year_month_day ymd) {
for (const chrono::leap_second& x : chrono::get_tzdb().leap_seconds) {
if (x == ymd) {
return true;
}
}
return false;
}
int main()
{
if (is_leap_second_day(1972y/7/1)) {
std::cout << "1972/7/1 is a leap second day" << std::endl;
}
}- x == ymd[color ff0000]
- chrono::year_month_day[link /reference/chrono/year_month_day.md]
- chrono::get_tzdb()[link /reference/chrono/get_tzdb.md]
- 1972y[link /reference/chrono/year/op_y.md]
1972/7/1 is a leap second day
- C++20
- Clang: (9.0時点で実装なし)
- GCC: (9.2時点で実装なし)
- Visual C++: (2019 Update 3時点で実装なし)