with libc++, clang fails to compile a call to:
vector::assign(const_pointer_iterator, const_pointer_iterator)
because const_pointer_iterator does not satisfy the InputIterator
concept. added the necessary typedefs for value_type and reference
to reflect the pointer type
Fixes: http://tracker.ceph.com/issues/22139
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit
fa034b69982285b800b0d85d1054a3c25a88d625)
struct const_pointer_iterator : public map_type::const_iterator {
const_pointer_iterator(typename map_type::const_iterator i)
: map_type::const_iterator(i) {}
- const value_type* operator*() const {
+
+ using value_type = typename map_type::const_iterator::value_type*;
+ using reference = const typename map_type::const_iterator::value_type*;
+
+ reference operator*() const {
return &map_type::const_iterator::operator*();
}
};