_Category
return __copy(__first, __last, __result, _Category(), (_Distance*) 0);
return _Category();
return __distance(__first, __last, _Category());
template <class _Category, class _Tp, class _Distance = ptrdiff_t,
typedef _Category iterator_category;