23 General utilities library [utilities]

23.10 Memory [memory]

23.10.3 Pointer traits [pointer.traits]

23.10.3.1 Pointer traits member types [pointer.traits.types]

using element_type = see below;

Type: Ptr​::​element_­type если qualified-id Ptr​::​element_­type действительный и обозначает тип ([temp.deduct]); в противном случае, T if Ptr является экземпляром формы шаблона класса SomePointer<T, Args>, где Args - ноль или более аргументов типа; в противном случае специализация сформирована неправильно.

using difference_type = see below;

Type: Ptr​::​difference_­type если qualified-id Ptr​::​difference_­type действительный и обозначает тип ([temp.deduct]); в противном случае ptrdiff_­t.

template <class U> using rebind = see below;

Alias template: Ptr​::​rebind<U> если qualified-id Ptr​::​rebind<U> действительный и обозначает тип ([temp.deduct]); в противном случае, SomePointer<U, Args> if Ptr является экземпляром формы шаблона класса SomePointer<T, Args>, где Args - ноль или более аргументов типа; в противном случае создание экземпляра rebind будет некорректным.