In common.h, define func_lib for function objects. In configure.ac, define HAVE_STD_FUNCTION and HAVE_BOOST_FUNCTION. Include function headers in ndnboost.
diff --git a/ndnboost/smart_ptr/shared_ptr.hpp b/ndnboost/smart_ptr/shared_ptr.hpp
index 78d6e30..52b9acc 100644
--- a/ndnboost/smart_ptr/shared_ptr.hpp
+++ b/ndnboost/smart_ptr/shared_ptr.hpp
@@ -485,7 +485,7 @@
#endif // BOOST_NO_AUTO_PTR
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
template< class Y, class D >
shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn()
@@ -550,7 +550,7 @@
#endif // BOOST_NO_AUTO_PTR
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
+#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
template<class Y, class D>
shared_ptr & operator=( std::unique_ptr<Y, D> && r )