diff --git a/core/asserts.hpp b/core/asserts.hpp
deleted file mode 100644
index cef39b4..0000000
--- a/core/asserts.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Regents of the University of California,
- *                           Arizona Board of Regents,
- *                           Colorado State University,
- *                           University Pierre & Marie Curie, Sorbonne University,
- *                           Washington University in St. Louis,
- *                           Beijing Institute of Technology,
- *                           The University of Memphis.
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NFD_CORE_ASSERTS_HPP
-#define NFD_CORE_ASSERTS_HPP
-
-#include "common.hpp"
-#include <boost/concept/assert.hpp>
-#include <boost/concept_check.hpp>
-#include <type_traits>
-
-namespace nfd {
-namespace detail {
-
-// As of Boost 1.54.0, the internal implementation of BOOST_CONCEPT_ASSERT does not allow
-// multiple assertions on the same line, so we have to combine multiple concepts together.
-
-template<typename T>
-class StlForwardIteratorConcept : public boost::ForwardIterator<T>
-                                , public boost::DefaultConstructible<T>
-{
-};
-
-} // namespace detail
-} // namespace nfd
-
-/** \brief assert T is default constructible
- *  \sa http://en.cppreference.com/w/cpp/concept/DefaultConstructible
- */
-#define NFD_ASSERT_DEFAULT_CONSTRUCTIBLE(T) \
-  static_assert(std::is_default_constructible<T>::value, \
-                #T " must be default-constructible"); \
-  BOOST_CONCEPT_ASSERT((boost::DefaultConstructible<T>))
-
-/** \brief assert T is a forward iterator
- *  \sa http://en.cppreference.com/w/cpp/concept/ForwardIterator
- *  \note A forward iterator should be default constructible, but boost::ForwardIterator follows
- *        SGI standard which doesn't require DefaultConstructible, so a separate check is needed.
- */
-#define NFD_ASSERT_FORWARD_ITERATOR(T) \
-  BOOST_CONCEPT_ASSERT((::nfd::detail::StlForwardIteratorConcept<T>)); \
-  static_assert(std::is_default_constructible<T>::value, \
-                #T " must be default-constructible")
-
-#endif // NFD_CORE_ASSERTS_HPP
diff --git a/daemon/fw/face-table.cpp b/daemon/fw/face-table.cpp
index 07409c6..fbd90f0 100644
--- a/daemon/fw/face-table.cpp
+++ b/daemon/fw/face-table.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2018,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -24,14 +24,15 @@
  */
 
 #include "face-table.hpp"
-#include "core/asserts.hpp"
 #include "core/global-io.hpp"
 #include "core/logger.hpp"
 #include "face/channel.hpp"
 
+#include <ndn-cxx/util/concepts.hpp>
+
 namespace nfd {
 
-NFD_ASSERT_FORWARD_ITERATOR(FaceTable::const_iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(FaceTable::const_iterator);
 
 NFD_LOG_INIT("FaceTable");
 
diff --git a/daemon/table/cs.cpp b/daemon/table/cs.cpp
index 54466ed..c789567 100644
--- a/daemon/table/cs.cpp
+++ b/daemon/table/cs.cpp
@@ -25,14 +25,15 @@
 
 #include "cs.hpp"
 #include "core/algorithm.hpp"
-#include "core/asserts.hpp"
 #include "core/logger.hpp"
+
 #include <ndn-cxx/lp/tags.hpp>
+#include <ndn-cxx/util/concepts.hpp>
 
 namespace nfd {
 namespace cs {
 
-NFD_ASSERT_FORWARD_ITERATOR(Cs::const_iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(Cs::const_iterator);
 
 NFD_LOG_INIT("ContentStore");
 
diff --git a/daemon/table/fib.cpp b/daemon/table/fib.cpp
index c34fd12..0a9522a 100644
--- a/daemon/table/fib.cpp
+++ b/daemon/table/fib.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2018,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -26,12 +26,13 @@
 #include "fib.hpp"
 #include "pit-entry.hpp"
 #include "measurements-entry.hpp"
-#include "core/asserts.hpp"
+
+#include <ndn-cxx/util/concepts.hpp>
 
 namespace nfd {
 namespace fib {
 
-NFD_ASSERT_FORWARD_ITERATOR(Fib::const_iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(Fib::const_iterator);
 
 const unique_ptr<Entry> Fib::s_emptyEntry = make_unique<Entry>(Name());
 
diff --git a/daemon/table/name-tree-iterator.cpp b/daemon/table/name-tree-iterator.cpp
index 32f282d..9752ac7 100644
--- a/daemon/table/name-tree-iterator.cpp
+++ b/daemon/table/name-tree-iterator.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2018,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -25,14 +25,15 @@
 
 #include "name-tree-iterator.hpp"
 #include "name-tree.hpp"
-#include "core/asserts.hpp"
 #include "core/logger.hpp"
+
 #include <boost/range/concepts.hpp>
+#include <ndn-cxx/util/concepts.hpp>
 
 namespace nfd {
 namespace name_tree {
 
-NFD_ASSERT_FORWARD_ITERATOR(Iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(Iterator);
 BOOST_CONCEPT_ASSERT((boost::ForwardRangeConcept<Range>));
 
 NFD_LOG_INIT("NameTreeIterator");
diff --git a/daemon/table/pit-iterator.cpp b/daemon/table/pit-iterator.cpp
index 973342e..58777a7 100644
--- a/daemon/table/pit-iterator.cpp
+++ b/daemon/table/pit-iterator.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2018,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -24,12 +24,13 @@
  */
 
 #include "pit-iterator.hpp"
-#include "core/asserts.hpp"
+
+#include <ndn-cxx/util/concepts.hpp>
 
 namespace nfd {
 namespace pit {
 
-NFD_ASSERT_FORWARD_ITERATOR(Iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(Iterator);
 
 Iterator::Iterator(const NameTree::const_iterator& ntIt, size_t iPitEntry)
   : m_ntIt(ntIt)
diff --git a/daemon/table/strategy-choice.cpp b/daemon/table/strategy-choice.cpp
index 7d25b4b..8e026dc 100644
--- a/daemon/table/strategy-choice.cpp
+++ b/daemon/table/strategy-choice.cpp
@@ -26,19 +26,20 @@
 #include "strategy-choice.hpp"
 #include "measurements-entry.hpp"
 #include "pit-entry.hpp"
-#include "core/asserts.hpp"
 #include "core/logger.hpp"
 #include "fw/strategy.hpp"
 
+#include <ndn-cxx/util/concepts.hpp>
+
 namespace nfd {
 namespace strategy_choice {
 
-using fw::Strategy;
-
-NFD_ASSERT_FORWARD_ITERATOR(StrategyChoice::const_iterator);
+NDN_CXX_ASSERT_FORWARD_ITERATOR(StrategyChoice::const_iterator);
 
 NFD_LOG_INIT("StrategyChoice");
 
+using fw::Strategy;
+
 static inline bool
 nteHasStrategyChoiceEntry(const name_tree::Entry& nte)
 {
