template<class T>
constexpr T saturating_add(T x, T y) noexcept;
template<class T>
constexpr T saturating_sub(T x, T y) noexcept;
template<class T>
constexpr T saturating_mul(T x, T y) noexcept;
template<class T>
constexpr T saturating_div(T x, T y) noexcept;
template<class R, class T>
constexpr R saturating_cast(T x) noexcept;