build: migrate to C++17

Change-Id: Ic5c01274f62556764ea96fc232cf3d835c4ab659
diff --git a/src/socket.hpp b/src/socket.hpp
index e7fb4ef..78e67d2 100644
--- a/src/socket.hpp
+++ b/src/socket.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
 /*
- * Copyright (c) 2012-2019 University of California, Los Angeles
+ * Copyright (c) 2012-2022 University of California, Los Angeles
  *
  * This file is part of ChronoSync, synchronization library for distributed realtime
  * applications for NDN.
@@ -52,11 +52,7 @@
   class Error : public std::runtime_error
   {
   public:
-    explicit
-    Error(const std::string& what)
-      : std::runtime_error(what)
-    {
-    }
+    using std::runtime_error::runtime_error;
   };
 
   Socket(const Name& syncPrefix,
@@ -70,9 +66,8 @@
 
   ~Socket();
 
-  using DataValidatedCallback = function<void(const Data&)>;
-
-  using DataValidationErrorCallback = function<void(const Data&, const ValidationError& error)> ;
+  using DataValidatedCallback = std::function<void(const Data&)>;
+  using DataValidationErrorCallback = std::function<void(const Data&, const ValidationError& error)> ;
 
   /**
    * @brief Add a sync node under same logic
@@ -232,12 +227,12 @@
                          const ValidationError& error);
 
 public:
-  static const ndn::Name DEFAULT_NAME;
-  static const ndn::Name DEFAULT_PREFIX;
-  static const std::shared_ptr<Validator> DEFAULT_VALIDATOR;
+  static inline const Name DEFAULT_NAME;
+  static inline const Name DEFAULT_PREFIX;
+  static inline const std::shared_ptr<Validator> DEFAULT_VALIDATOR;
 
 private:
-  using RegisteredPrefixList = std::unordered_map<ndn::Name, ndn::RegisteredPrefixHandle>;
+  using RegisteredPrefixList = std::unordered_map<Name, ndn::RegisteredPrefixHandle>;
 
   Name m_userPrefix;
   ndn::Face& m_face;