diff --git a/src/meta-info.cpp b/src/meta-info.cpp
index 41ad0f7..dcafb18 100644
--- a/src/meta-info.cpp
+++ b/src/meta-info.cpp
@@ -1,5 +1,5 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
+/*
  * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
@@ -205,7 +205,7 @@
 
   // ContentType
   if (val != m_wire.elements_end() && val->type() == tlv::ContentType) {
-    m_type = readNonNegativeInteger(*val);
+    m_type = readNonNegativeIntegerAs<uint32_t>(*val);
     ++val;
   }
   else {
diff --git a/src/mgmt/control-response.cpp b/src/mgmt/control-response.cpp
index 9d82d40..3045783 100644
--- a/src/mgmt/control-response.cpp
+++ b/src/mgmt/control-response.cpp
@@ -79,7 +79,7 @@
   if (val == m_wire.elements_end() || val->type() != tlv::nfd::StatusCode) {
     BOOST_THROW_EXCEPTION(Error("missing StatusCode sub-element"));
   }
-  m_code = readNonNegativeInteger(*val);
+  m_code = readNonNegativeIntegerAs<uint32_t>(*val);
   ++val;
 
   if (val == m_wire.elements_end() || val->type() != tlv::nfd::StatusText) {
diff --git a/src/selectors.cpp b/src/selectors.cpp
index 8890b58..a207775 100644
--- a/src/selectors.cpp
+++ b/src/selectors.cpp
@@ -1,5 +1,5 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
+/*
  * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
@@ -145,13 +145,13 @@
   // MinSuffixComponents
   Block::element_const_iterator val = m_wire.find(tlv::MinSuffixComponents);
   if (val != m_wire.elements_end()) {
-    m_minSuffixComponents = readNonNegativeInteger(*val);
+    m_minSuffixComponents = readNonNegativeIntegerAs<int>(*val);
   }
 
   // MaxSuffixComponents
   val = m_wire.find(tlv::MaxSuffixComponents);
   if (val != m_wire.elements_end()) {
-    m_maxSuffixComponents = readNonNegativeInteger(*val);
+    m_maxSuffixComponents = readNonNegativeIntegerAs<int>(*val);
   }
 
   // PublisherPublicKeyLocator
@@ -169,7 +169,7 @@
   // ChildSelector
   val = m_wire.find(tlv::ChildSelector);
   if (val != m_wire.elements_end()) {
-    m_childSelector = readNonNegativeInteger(*val);
+    m_childSelector = readNonNegativeIntegerAs<bool>(*val);
   }
   else {
     m_childSelector = DEFAULT_CHILD_SELECTOR;
