- chrono[meta header]
- std::chrono_literals[meta namespace]
- function[meta id-type]
- cpp20[meta cpp]
namespace std {
inline namespace literals {
inline namespace chrono_literals {
constexpr day operator""d(unsigned long long d) noexcept; // (1)
}}
namespace chrono {
using namespace literals::chrono_literals;
} // namespace chrono
} // namespace std日単位の値を表すdayクラスのリテラル。
- (1) : 整数型の日リテラル
- (1) :
return day{static_cast<unsigned int>(d)};
- 時間間隔のリテラルではなく、カレンダーのリテラルなので注意
#include <iostream>
#include <chrono>
namespace chrono = std::chrono;
int main()
{
using namespace std::chrono_literals;
auto d = 3d; // 整数型の3日
std::cout << d << std::endl;
// 月のint型整数値と組み合わせることで、月・日を作れる
chrono::month_day date = 3/1d; // 年の情報をもたない「3月1日」
std::cout << date << std::endl;
}- 3d[color ff0000]
- 1d[color ff0000]
- chrono::month_day[link /reference/chrono/month_day.md]
03
Mar/01
- C++20
- Clang: 8.0
- GCC: (9.2時点で実装なし)
- Visual C++: (2019 Update 3時点で実装なし)