If no HAVE_STD_SHARED_PTR or HAVE_BOOST_SHARED_PTR then set ptr_lib to ndnboost in the boost headers in this distribution.
diff --git a/boost/smart_ptr/detail/sp_if_array.hpp b/boost/smart_ptr/detail/sp_if_array.hpp
new file mode 100644
index 0000000..f12ffe7
--- /dev/null
+++ b/boost/smart_ptr/detail/sp_if_array.hpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2012 Glen Joseph Fernandes 
+ * glenfe at live dot com
+ *
+ * Distributed under the Boost Software License, 
+ * Version 1.0. (See accompanying file LICENSE_1_0.txt 
+ * or copy at http://boost.org/LICENSE_1_0.txt)
+ */
+#ifndef BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
+#define BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP
+
+#include <boost/smart_ptr/shared_ptr.hpp>
+
+namespace ndnboost {
+    namespace detail {
+        template<typename T> 
+        struct sp_if_array;
+        template<typename T>
+        struct sp_if_array<T[]> {
+            typedef ndnboost::shared_ptr<T[]> type;
+        };
+        template<typename T>
+        struct sp_if_size_array;
+        template<typename T, std::size_t N>
+        struct sp_if_size_array<T[N]> {
+            typedef ndnboost::shared_ptr<T[N]> type;
+        };
+    }
+}
+
+#endif