Delete core/asserts.hpp and use ndn-cxx's util/concepts.hpp instead

Change-Id: I13a3460c1c3a90ea0fdca3d8212267353f72af4f
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)
 {