Remarks: The expression in the requires-clause is equivalent to:
(point_origin == Traits::point_origin) &&
std::convertible_to<quantity_type, quantity<Traits::reference, typename Traits::rep>>
The expression inside explicit is equivalent to:
Traits::explicit_export ||
!std::convertible_to<quantity_type, quantity<Traits::reference, typename Traits::rep>>
Let
T be
std::is_nothrow_copy_constructible_v for the first signature, and
std::is_nothrow_move_constructible_v for the second signature
. The exception specification is equivalent to:
noexcept(result-expr) && T<rep>