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/function_types/detail/classifier_impl/arity10_1.hpp b/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
new file mode 100644
index 0000000..cca8027
--- /dev/null
+++ b/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
@@ -0,0 +1,52 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+// no include guards, this file is intended for multiple inclusion
+
+// input:  BOOST_FT_syntax     type macro to use
+// input:  BOOST_FT_cc         empty or cc specifier 
+// input:  BOOST_FT_ell        empty or "..."
+// input:  BOOST_FT_cv         empty or cv qualifiers
+// input:  BOOST_FT_flags      single decimal integer encoding the flags
+// output: BOOST_FT_n          number of component types (arity+1)
+// output: BOOST_FT_arity      current arity
+// output: BOOST_FT_type       macro that expands to the type
+// output: BOOST_FT_tplargs(p) template arguments with given prefix
+// output: BOOST_FT_params(p)  parameters with given prefix
+
+template< typename R , typename T0 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
+template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
+typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
+classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
+