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