30template <
typename Clock,
typename Duration>
39 is_time_point_v<remove_optional_t<std::remove_cvref_t<T>>> ||
40 std::same_as<remove_optional_t<std::remove_cvref_t<T>>,
41 std::chrono::system_clock::time_point> ||
42 std::same_as<remove_optional_t<std::remove_cvref_t<T>>,
43 std::chrono::time_point<std::chrono::system_clock>> ||
44 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::year_month_day> ||
45 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::year> ||
46 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::month> ||
47 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::day> ||
48 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::weekday> ||
49 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::year_month> ||
50 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::month_day> ||
51 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::duration<int64_t>> ||
52 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::milliseconds> ||
53 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::seconds> ||
54 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::minutes> ||
55 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::hours> ||
56 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::days> ||
57 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::weeks> ||
58 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::months> ||
59 std::same_as<remove_optional_t<std::remove_cvref_t<T>>, std::chrono::years>;