Add -Wextra-semi -Wundefined-func-template to the default CXXFLAGS

And fix the resulting compilation errors.

Change-Id: I16f679836a0cf2a3ff5dfcf6f6b67bfbfe4cdbd7
Refs: #4248
diff --git a/src/util/cf-releaser-osx.hpp b/src/util/cf-releaser-osx.hpp
index 61afeba..6c73ae8 100644
--- a/src/util/cf-releaser-osx.hpp
+++ b/src/util/cf-releaser-osx.hpp
@@ -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).
@@ -138,7 +138,7 @@
       CFRelease(m_typeRef);
       m_typeRef = nullptr;
     }
-  };
+  }
 
 private:
   T m_typeRef;
diff --git a/src/util/logging.cpp b/src/util/logging.cpp
index 9961598..06948c1 100644
--- a/src/util/logging.cpp
+++ b/src/util/logging.cpp
@@ -30,6 +30,11 @@
 #include <iostream>
 #include <sstream>
 
+// suppress warning caused by <boost/log/sinks/text_ostream_backend.hpp>
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wundefined-func-template"
+#endif
+
 namespace ndn {
 namespace util {
 
diff --git a/src/util/regex/regex-pattern-list-matcher.hpp b/src/util/regex/regex-pattern-list-matcher.hpp
index fb0743b..ccac4b8 100644
--- a/src/util/regex/regex-pattern-list-matcher.hpp
+++ b/src/util/regex/regex-pattern-list-matcher.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2013-2015 Regents of the University of California.
+/*
+ * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -37,14 +37,9 @@
 public:
   RegexPatternListMatcher(const std::string& expr, shared_ptr<RegexBackrefManager> backrefManager);
 
-  virtual
-  ~RegexPatternListMatcher()
-  {
-  };
-
 protected:
-  virtual void
-  compile();
+  void
+  compile() override;
 
 private:
   bool
@@ -55,9 +50,6 @@
 
   int
   extractRepetition(size_t index);
-
-private:
-
 };
 
 } // namespace ndn
@@ -193,7 +185,6 @@
   }
 }
 
-
 } // namespace ndn
 
 #endif // NDN_UTIL_REGEX_REGEX_PATTERN_LIST_MATCHER_HPP
diff --git a/src/util/time-unit-test-clock.hpp b/src/util/time-unit-test-clock.hpp
index f099b84..7d67507 100644
--- a/src/util/time-unit-test-clock.hpp
+++ b/src/util/time-unit-test-clock.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2013-2016 Regents of the University of California.
+/*
+ * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -102,6 +102,9 @@
   nanoseconds m_currentTime;
 };
 
+extern template class UnitTestClock<system_clock>;
+extern template class UnitTestClock<steady_clock>;
+
 typedef UnitTestClock<system_clock> UnitTestSystemClock;
 typedef UnitTestClock<steady_clock> UnitTestSteadyClock;