template<typename T>
struct actual-value-type : cond-value-type<T> {}; // see N4971, [readable.traits]
template<typename T>
requires(!std::is_pointer_v<T> && !std::is_array_v<T>) &&
requires { typename std::indirectly_readable_traits<T>::value_type; }
struct actual-value-type<T> : std::indirectly_readable_traits<T> {};
template<typename T>
using actual-value-type-t = actual-value-type<T>::value_type;
template<typename Rep>
constexpr bool treat_as_floating_point =
std::chrono::treat_as_floating_point_v<actual-value-type-t<Rep>>;
template<typename T>
constexpr bool disable_scalar = false;
template<typename T>
constexpr bool disable_complex = false;
template<typename T>
constexpr bool disable_vector = false;
static constexpr Rep one() noexcept;