diff --git a/daemon/table/name-tree-iterator.cpp b/daemon/table/name-tree-iterator.cpp
index 8750867..d7c7362 100644
--- a/daemon/table/name-tree-iterator.cpp
+++ b/daemon/table/name-tree-iterator.cpp
@@ -29,17 +29,20 @@
 
 #include <boost/concept/assert.hpp>
 #include <boost/concept_check.hpp>
+#include <boost/range/concepts.hpp>
 #include <type_traits>
 
 namespace nfd {
 namespace name_tree {
 
-NFD_LOG_INIT("NameTreeIterator");
-
 BOOST_CONCEPT_ASSERT((boost::ForwardIterator<Iterator>));
 static_assert(std::is_default_constructible<Iterator>::value,
               "Iterator must be default-constructible");
 
+BOOST_CONCEPT_ASSERT((boost::ForwardRangeConcept<Range>));
+
+NFD_LOG_INIT("NameTreeIterator");
+
 Iterator::Iterator()
   : m_entry(nullptr)
   , m_ref(nullptr)
diff --git a/daemon/table/name-tree-iterator.hpp b/daemon/table/name-tree-iterator.hpp
index ecde5bd..cb0921d 100644
--- a/daemon/table/name-tree-iterator.hpp
+++ b/daemon/table/name-tree-iterator.hpp
@@ -195,6 +195,13 @@
   EntrySelector m_pred;
 };
 
+/** \brief a Forward Range of name tree entries
+ *
+ *  This type has .begin() and .end() methods which return Iterator.
+ *  This type is usable with range-based for.
+ */
+typedef boost::iterator_range<Iterator> Range;
+
 } // namespace name_tree
 } // namespace nfd
 
diff --git a/daemon/table/name-tree.hpp b/daemon/table/name-tree.hpp
index 0c24654..5c31103 100644
--- a/daemon/table/name-tree.hpp
+++ b/daemon/table/name-tree.hpp
@@ -36,8 +36,6 @@
 class NameTree : noncopyable
 {
 public:
-  typedef Iterator const_iterator;
-
   explicit
   NameTree(size_t nBuckets = 1024);
 
@@ -164,9 +162,7 @@
                          const EntrySelector& entrySelector = AnyEntry()) const;
 
   /** \brief all-prefixes match lookup
-   *  \return an unspecified type that have .begin() and .end() methods
-   *          and is usable with range-based for.
-   *          Every entry in the range has a name that is a prefix of \p name ,
+   *  \return a range where every entry has a name that is a prefix of \p name ,
    *          and matches \p entrySelector.
    *
    *  Example:
@@ -184,15 +180,15 @@
    *           If a name tree entry whose name is a prefix of \p name is deleted
    *           during the enumeration, undefined behavior may occur.
    */
-  boost::iterator_range<const_iterator>
+  Range
   findAllMatches(const Name& name,
                  const EntrySelector& entrySelector = AnyEntry()) const;
 
 public: // enumeration
+  typedef Iterator const_iterator;
+
   /** \brief enumerate all entries
-   *  \return an unspecified type that have .begin() and .end() methods
-   *          and is usable with range-based for.
-   *          Every entry in the range matches \p entrySelector.
+   *  \return a range where every entry matches \p entrySelector
    *
    *  Example:
    *  \code
@@ -205,13 +201,11 @@
    *  \warning If a name tree entry is inserted or deleted during the enumeration,
    *           it may cause the enumeration to skip entries or visit some entries twice.
    */
-  boost::iterator_range<const_iterator>
+  Range
   fullEnumerate(const EntrySelector& entrySelector = AnyEntry()) const;
 
   /** \brief enumerate all entries under a prefix
-   *  \return an unspecified type that have .begin() and .end() methods
-   *          and is usable with range-based for.
-   *          Every entry in the range has a name that starts with \p prefix,
+   *  \return a range where every entry has a name that starts with \p prefix,
    *          and matches \p entrySubTreeSelector.
    *
    *  Example:
@@ -227,7 +221,7 @@
    *  \warning If a name tree entry under \p prefix is inserted or deleted during the enumeration,
    *           it may cause the enumeration to skip entries or visit some entries twice.
    */
-  boost::iterator_range<const_iterator>
+  Range
   partialEnumerate(const Name& prefix,
                    const EntrySubTreeSelector& entrySubTreeSelector = AnyEntrySubTree()) const;
 
