Commit c5a1c8a6 by Ivan Smirnov

Don't require operator-> for key iterators

parent b692896f
......@@ -1149,7 +1149,7 @@ iterator make_iterator(Iterator first, Iterator last, Extra &&... extra) {
return (iterator) cast(state { first, last, true });
}
template <typename Iterator,
typename KeyType = decltype(std::declval<Iterator>()->first),
typename KeyType = decltype((*std::declval<Iterator>()).first),
typename... Extra>
iterator make_key_iterator(Iterator first, Iterator last, Extra &&... extra) {
typedef detail::iterator_state<Iterator, true> state;
......@@ -1164,7 +1164,7 @@ iterator make_key_iterator(Iterator first, Iterator last, Extra &&... extra) {
s.first = false;
if (s.it == s.end)
throw stop_iteration();
return s.it->first;
return (*s.it).first;
}, return_value_policy::reference_internal, std::forward<Extra>(extra)...);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment