Fix missing 'typename' prior to dependent type name error

On Ubuntu 17.10 with gcc 7.2 or clang 3.9,
compiler threw the error when trying to
use the append(Iterator) method on a name

Change-Id: I5252280cfc9021d81d6bb996012255e226006a45
diff --git a/src/name.hpp b/src/name.hpp
index a2efe1b..b27f3fd 100644
--- a/src/name.hpp
+++ b/src/name.hpp
@@ -293,7 +293,7 @@
   Name&
   append(Iterator first, Iterator last)
   {
-    static_assert(sizeof(std::iterator_traits<Iterator>::value_type) == 1,
+    static_assert(sizeof(typename std::iterator_traits<Iterator>::value_type) == 1,
                   "iterator does not dereference to one-octet value type");
     return append(Component(first, last));
   }
diff --git a/tests/unit-tests/name.t.cpp b/tests/unit-tests/name.t.cpp
index dff17e4..00537d2 100644
--- a/tests/unit-tests/name.t.cpp
+++ b/tests/unit-tests/name.t.cpp
@@ -248,6 +248,12 @@
     Name name("/hello/world");
     BOOST_CHECK_EQUAL("/hello/world/and/beyond", name.append(toAppend).append(toAppend1));
   }
+
+  {
+    std::vector<uint8_t> vec{1, 1, 2, 3};
+    Name name("/hello");
+    BOOST_CHECK_EQUAL("/hello/%01%01%02%03", name.append(vec.begin(), vec.end()));
+  }
 }
 
 BOOST_AUTO_TEST_CASE(AppendsAndMultiEncode)