Always build in C++11 mode.

Change-Id: Ia25c738f63aee1b70e61f841ff52a151446ac220
Refs: #1930
diff --git a/src/common.hpp b/src/common.hpp
index e4d66b3..44a0dd8 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -38,46 +38,39 @@
 #define NDN_CXX_PROTECTED_WITH_TESTS_ELSE_PRIVATE private
 #endif
 
-#include <stdint.h>
-#include <stddef.h>
+// require C++11
+#if __cplusplus < 201103L && !defined(__GXX_EXPERIMENTAL_CXX0X__)
+#  error "ndn-cxx applications must be compiled using the C++11 standard"
+#endif
+
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
+#include <functional>
+#include <limits>
+#include <memory>
+#include <stdexcept>
+#include <string>
 #include <unistd.h>
 
 #if defined(__GNUC__) || defined(__clang__)
-#define DEPRECATED(func) func __attribute__ ((deprecated))
+#  define DEPRECATED(func) func __attribute__ ((deprecated))
 #elif defined(_MSC_VER)
-#define DEPRECATED(func) __declspec(deprecated) func
+#  define DEPRECATED(func) __declspec(deprecated) func
 #else
-#pragma message("DEPRECATED not implemented")
-#define DEPRECATED(func) func
+#  pragma message("DEPRECATED not implemented")
+#  define DEPRECATED(func) func
 #endif
 
 namespace ndn {
 
 const size_t MAX_NDN_PACKET_SIZE = 8800;
 
-} // namespace ndn
-
-#ifdef NDN_CXX_HAVE_CXX11
-
-#if defined(__GNUC__)
-#  if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
-#    error "NDN-CXX library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
-#  endif // !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
-#endif // defined(__GNUC__)
-
-#if defined(__clang__) && __cplusplus < 201103L
-#  error "NDN-CXX library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
-#endif // defined(__clang__) && (__cplusplus < 201103L)
-
-#include <memory>
-#include <functional>
-
-namespace ndn {
-
 namespace ptr_lib = std;
 namespace func_lib = std;
 
 using std::shared_ptr;
+using std::unique_ptr;
 using std::weak_ptr;
 using std::bad_weak_ptr;
 using std::make_shared;
@@ -98,54 +91,16 @@
 using std::placeholders::_7;
 using std::placeholders::_8;
 using std::placeholders::_9;
-
 using std::ref;
 using std::cref;
 
 } // namespace ndn
 
-
-#else
-
-#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <boost/make_shared.hpp>
-
-#include <boost/function.hpp>
-#include <boost/bind.hpp>
+#include <boost/assert.hpp>
+#include <boost/noncopyable.hpp>
 
 namespace ndn {
-
-namespace ptr_lib = boost;
-namespace func_lib = boost;
-
-using boost::shared_ptr;
-using boost::weak_ptr;
-using boost::bad_weak_ptr;
-using boost::make_shared;
-using boost::enable_shared_from_this;
-
-using boost::static_pointer_cast;
-using boost::dynamic_pointer_cast;
-using boost::const_pointer_cast;
-
-using boost::function;
-using boost::bind;
-
-using boost::ref;
-using boost::cref;
-
-} // namespace ndn
-
-#endif // NDN_CXX_HAVE_CXX11
-
-#include <boost/utility.hpp>
-
-namespace ndn {
-
 using boost::noncopyable;
-
 }
 
 #endif // NDN_COMMON_HPP
diff --git a/src/detail/face-impl.hpp b/src/detail/face-impl.hpp
index cd1b3d8..155185d 100644
--- a/src/detail/face-impl.hpp
+++ b/src/detail/face-impl.hpp
@@ -217,12 +217,12 @@
     }
 
     RegisteredPrefix::Unregistrator bindedUnregistrator =
-      bind(unregistrator, m_face.m_nfdController, unregisterParameters, _1, _2,
-           signatureGenerator,
-           m_face.m_nfdController->getDefaultCommandTimeout());
+        ndn::bind(unregistrator, m_face.m_nfdController.get(), unregisterParameters, _1, _2,
+                  signatureGenerator,
+                  m_face.m_nfdController->getDefaultCommandTimeout());
 
     shared_ptr<RegisteredPrefix> prefixToRegister =
-      ndn::make_shared<RegisteredPrefix>(prefix, filter, bindedUnregistrator);
+      make_shared<RegisteredPrefix>(prefix, filter, bindedUnregistrator);
 
     ((*m_face.m_nfdController).*registrator)(registerParameters,
                                              bind(&Impl::afterPrefixRegistered, this,
diff --git a/src/encoding/tlv.hpp b/src/encoding/tlv.hpp
index 0fb4704..d74323b 100644
--- a/src/encoding/tlv.hpp
+++ b/src/encoding/tlv.hpp
@@ -25,6 +25,7 @@
 #include <stdexcept>
 #include <iostream>
 #include <iterator>
+#include <limits>
 
 #include "buffer.hpp"
 #include "endian.hpp"
diff --git a/src/name-component.cpp b/src/name-component.cpp
index 75d9cfa..9c97773 100644
--- a/src/name-component.cpp
+++ b/src/name-component.cpp
@@ -60,7 +60,7 @@
 }
 
 Component::Component(const char* str)
-  : Block(dataBlock(tlv::NameComponent, str, ::strlen(str)))
+  : Block(dataBlock(tlv::NameComponent, str, std::char_traits<char>::length(str)))
 {
 }
 
diff --git a/src/name-component.hpp b/src/name-component.hpp
index ea68084..b8023b1 100644
--- a/src/name-component.hpp
+++ b/src/name-component.hpp
@@ -189,7 +189,7 @@
   static Component
   fromEscapedString(const char* escapedString)
   {
-    return fromEscapedString(escapedString, 0, ::strlen(escapedString));
+    return fromEscapedString(escapedString, 0, std::char_traits<char>::length(escapedString));
   }
 
   /**
diff --git a/src/util/ethernet.cpp b/src/util/ethernet.cpp
index d5eb780..f68a27a 100644
--- a/src/util/ethernet.cpp
+++ b/src/util/ethernet.cpp
@@ -28,6 +28,7 @@
 #include "ethernet.hpp"
 
 #include <stdio.h>
+#include <ostream>
 
 namespace ndn {
 namespace util {
diff --git a/src/util/in-memory-storage.hpp b/src/util/in-memory-storage.hpp
index fb7ddb6..b9fb9da 100644
--- a/src/util/in-memory-storage.hpp
+++ b/src/util/in-memory-storage.hpp
@@ -37,7 +37,6 @@
 
 #include <stack>
 #include <iterator>
-#include <stdexcept>
 
 namespace ndn {
 namespace util {
diff --git a/src/util/io.hpp b/src/util/io.hpp
index 09ed90c..4c7caf9 100644
--- a/src/util/io.hpp
+++ b/src/util/io.hpp
@@ -27,7 +27,6 @@
 #include "../encoding/block.hpp"
 #include "../encoding/buffer-stream.hpp"
 
-#include <string>
 #include <iostream>
 #include <fstream>
 #include "../security/cryptopp.hpp"