For an object x of type Dereferenceable, *x
is well-formed. If ++x is ill-formed it shall neither be
ambiguous nor shall it violate access control, and
Dereferenceable::element_type shall be an accessible type.
Otherwise iterator_traits<Dereferenceable>::value_type shall
be well formed. [Note: These requirements need not apply to
explicit or partial specializations of pointee]
Типопределяется по следующему алгоритму, гдеxявляется объектом типаДостойный:
if ( ++x is ill-formed )
{
return ``Dereferenceable::element_type``
}
else if (``*x`` is a mutable reference to
std::iterator_traits<Dereferenceable>::value_type)
{
return iterator_traits<Dereferenceable>::value_type
}
else
{
return iterator_traits<Dereferenceable>::value_type const
}
For an object x of type Dereferenceable, *x
is well-formed. If ++x is ill-formed it shall neither be
ambiguous nor shall it violate access control, and
pointee<Dereferenceable>::type& shall be well-formed.
Otherwise iterator_traits<Dereferenceable>::reference shall
be well formed. [Note: These requirements need not apply to
explicit or partial specializations of indirect_reference]
Типопределяется по следующему алгоритму, гдеxявляется объектом типаДостойный:
if ( ++x is ill-formed )
return ``pointee<Dereferenceable>::type&``
else
std::iterator_traits<Dereferenceable>::reference
Статья pointee and indirect_reference раздела может быть полезна для разработчиков на c++ и boost.