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/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/ndnboost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
new file mode 100644
index 0000000..d31dba4
--- /dev/null
+++ b/ndnboost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
@@ -0,0 +1,46 @@
+
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl { namespace aux {
+
+template< bool >
+struct template_arity_impl
+{
+    template< typename F > struct result_
+        : mpl::int_< -1 >
+    {
+    };
+};
+
+template<>
+struct template_arity_impl<true>
+{
+    template< typename F > struct result_
+        : F::arity
+    {
+    };
+};
+
+template< typename F >
+struct template_arity
+    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
+        ::template result_<F>
+{
+};
+
+template<>
+struct template_arity<int>
+    : mpl::int_< -1 >
+{
+};
+
+}}}
+