[range.prim.ssize] (original) (raw)

Given a subexpression E with type T, let t be an lvalue that denotes the reified object for E.

If ranges​::​size(t) is ill-formed,ranges​::​ssize(E) is ill-formed.

Otherwise let D be_make-signed-like-t_<decltype(ranges​::​​size(t))>, orptrdiff_t if it is wider than that type;ranges​::​ssize(E) is expression-equivalent tostatic_cast<D>(ranges​::​size(t)).