121 template <
class InputIterator>
122 static typename bsl::iterator_traits<InputIterator>::difference_type
125#ifdef BSLS_COMPILERFEATURES_SUPPORT_ALIAS_TEMPLATES
131 template <
class INPUT_ITER>
132 using IterVal_t =
typename bsl::iterator_traits<INPUT_ITER>::value_type;
136 template <
class INPUT_ITER>
137 using IterKey_t = bsl::remove_const_t<
138 typename bsl::iterator_traits<INPUT_ITER>::value_type::first_type>;
142 template <
class INPUT_ITER>
144 typename bsl::iterator_traits<INPUT_ITER>::value_type::second_type;
149 template <
class INPUT_ITER>
152 typename bsl::iterator_traits<INPUT_ITER>::value_type::first_type>,
153 typename bsl::iterator_traits<INPUT_ITER>::value_type::second_type
178 typename bsl::iterator_traits<InputIterator>::difference_type
179 calc(InputIterator, InputIterator, std::input_iterator_tag)
185 typename bsl::iterator_traits<InputIterator>::difference_type
186 calc(InputIterator first,
188 std::forward_iterator_tag)
190 return bsl::distance(first, last);
194 typedef typename bsl::iterator_traits<InputIterator>::iterator_category
196 return impl::calc(first, last, IterCategory());