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/encoding/encoding-buffer-fwd.hpp b/src/encoding/encoding-buffer-fwd.hpp
index 359864f..88f6dea 100644
--- a/src/encoding/encoding-buffer-fwd.hpp
+++ b/src/encoding/encoding-buffer-fwd.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).
*
@@ -22,10 +22,12 @@
#ifndef NDN_ENCODING_ENCODING_BUFFER_FWD_HPP
#define NDN_ENCODING_ENCODING_BUFFER_FWD_HPP
+#include "../common.hpp"
+
namespace ndn {
namespace encoding {
-typedef bool Tag;
+using Tag = bool;
/**
* @brief Tag for EncodingImpl to indicate that Encoder is requested
@@ -44,8 +46,8 @@
template<Tag TAG>
class EncodingImpl;
-typedef EncodingImpl<EncoderTag> EncodingBuffer;
-typedef EncodingImpl<EstimatorTag> EncodingEstimator;
+using EncodingBuffer = EncodingImpl<EncoderTag>;
+using EncodingEstimator = EncodingImpl<EstimatorTag>;
} // namespace encoding
@@ -55,4 +57,16 @@
} // namespace ndn
+#define NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS(ClassName) \
+ extern template size_t \
+ ClassName::wireEncode<::ndn::encoding::EncoderTag>(::ndn::EncodingBuffer&) const; \
+ extern template size_t \
+ ClassName::wireEncode<::ndn::encoding::EstimatorTag>(::ndn::EncodingEstimator&) const \
+
+#define NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS(ClassName) \
+ template size_t \
+ ClassName::wireEncode<::ndn::encoding::EncoderTag>(::ndn::EncodingBuffer&) const; \
+ template size_t \
+ ClassName::wireEncode<::ndn::encoding::EstimatorTag>(::ndn::EncodingEstimator&) const \
+
#endif // NDN_ENCODING_ENCODING_BUFFER_FWD_HPP