Improve and simplify code with modern C++ features
Change-Id: I28d84df3087492ab2ecbeb91169a2cde12c9e31e
diff --git a/src/exclude.hpp b/src/exclude.hpp
index a5a2db6..77c9785 100644
--- a/src/exclude.hpp
+++ b/src/exclude.hpp
@@ -27,6 +27,7 @@
#include "name-component.hpp"
#include "encoding/encoding-buffer.hpp"
+#include <iterator>
#include <map>
namespace ndn {
@@ -222,17 +223,23 @@
name::Component to;
};
- class const_iterator : public std::iterator<std::forward_iterator_tag, const Range>
+ class const_iterator
{
public:
+ using iterator_category = std::forward_iterator_tag;
+ using value_type = const Range;
+ using difference_type = std::ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+
const_iterator() = default;
const_iterator(ExcludeMap::const_reverse_iterator it, ExcludeMap::const_reverse_iterator rend);
- const Range&
+ reference
operator*() const;
- const Range*
+ pointer
operator->() const;
const_iterator&
@@ -347,14 +354,14 @@
return !this->operator==(other);
}
-inline const Exclude::Range&
+inline Exclude::const_iterator::reference
Exclude::const_iterator::operator*() const
{
BOOST_ASSERT(m_it != m_rend);
return m_range;
}
-inline const Exclude::Range*
+inline Exclude::const_iterator::pointer
Exclude::const_iterator::operator->() const
{
BOOST_ASSERT(m_it != m_rend);