diff --git a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp b/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
index f452019..880a518 100644
--- a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
@@ -11,142 +11,142 @@
 #   pragma wave option(preserve: 0)
 #endif
 
-#if !defined(BOOST_FT_PREPROCESSING_MODE)
+#if !defined(NDNBOOST_FT_PREPROCESSING_MODE)
 #   error "this file is only for two-pass preprocessing"
 #endif
 
-#if !defined(BOOST_PP_VALUE)
+#if !defined(NDNBOOST_PP_VALUE)
 #   include <ndnboost/preprocessor/slot/slot.hpp>
 #   include <ndnboost/preprocessor/facilities/empty.hpp>
 #   include <ndnboost/preprocessor/facilities/expand.hpp>
 #   include <ndnboost/function_types/detail/encoding/def.hpp>
 
-BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 0
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
+NDNBOOST_PP_EXPAND(#) if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_pointer|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_pointer|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_pointer|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_pointer|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
 
-#   define BOOST_PP_VALUE \
-      BOOST_FT_reference|BOOST_FT_non_variadic
+#   define NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_reference|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define BOOST_PP_VALUE \
-      BOOST_FT_reference|BOOST_FT_variadic
+#   define NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_reference|NDNBOOST_FT_variadic
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) undef  BOOST_FT_mfp
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
 
-BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
-BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 1
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
 
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
-#   define  BOOST_PP_VALUE \
-      BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
+#   define  NDNBOOST_PP_VALUE \
+      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
 #   include __FILE__
 
-BOOST_PP_EXPAND(#) undef  BOOST_FT_syntax
-BOOST_PP_EXPAND(#) undef  BOOST_FT_mfp
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
+NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
 
 #   include <ndnboost/function_types/detail/encoding/undef.hpp>
 #else 
 
-#   include BOOST_PP_ASSIGN_SLOT(1)
+#   include NDNBOOST_PP_ASSIGN_SLOT(1)
 
-#   define  BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
-#   include BOOST_PP_ASSIGN_SLOT(2)
+#   define  NDNBOOST_PP_VALUE NDNBOOST_PP_SLOT(1) & NDNBOOST_FT_kind_mask
+#   include NDNBOOST_PP_ASSIGN_SLOT(2)
 
-BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
-BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
+NDNBOOST_PP_EXPAND(#) if !!(NDNBOOST_PP_SLOT(2) & (NDNBOOST_FT_variations))
+NDNBOOST_PP_EXPAND(#) if (NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
 
-#   if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_ell ...
-BOOST_PP_EXPAND(#)   define BOOST_FT_nullary_param
+#   if ( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_variadic) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell ...
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param
 #   else
-BOOST_PP_EXPAND(#)   define BOOST_FT_ell
-BOOST_PP_EXPAND(#)   define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
 #   endif
 
-#   if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
-#     if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv 
+#   if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_volatile) )
+#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv 
 #     else
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv const
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const
 #     endif
 #   else
-#     if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv volatile
+#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv volatile
 #     else
-BOOST_PP_EXPAND(#)   define BOOST_FT_cv const volatile
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const volatile
 #     endif
 #   endif
-BOOST_PP_EXPAND(#)   define BOOST_FT_flags BOOST_PP_SLOT(1)
-BOOST_PP_EXPAND(#)   include BOOST_FT_variate_file
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_flags NDNBOOST_PP_SLOT(1)
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_variate_file
 
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cv
-BOOST_PP_EXPAND(#)   undef BOOST_FT_ell
-BOOST_PP_EXPAND(#)   undef BOOST_FT_nullary_param
-BOOST_PP_EXPAND(#)   undef BOOST_FT_flags
-BOOST_PP_EXPAND(#) endif
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cv
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_ell
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_nullary_param
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_flags
+NDNBOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 #endif
 
diff --git a/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
index 7e7c4f9..83cc0c6 100644
--- a/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
@@ -7,277 +7,277 @@
 //------------------------------------------------------------------------------
 
 // this file has been generated from the master.hpp file in the same directory
-# define BOOST_FT_mfp 0
-# define BOOST_FT_syntax BOOST_FT_type_function
-# if ! ! (4 & (BOOST_FT_variations))
-# if (519 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 519
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# define NDNBOOST_FT_mfp 0
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (519 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 519
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (263 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 263
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (263 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 263
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if !BOOST_FT_NO_CV_FUNC_SUPPORT
-# if ! ! (4 & (BOOST_FT_variations))
-# if (1543 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1543
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (1543 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1543
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (1287 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1287
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (1287 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1287
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (2567 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2567
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (2567 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2567
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (2311 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2311
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (2311 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2311
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (3591 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3591
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (3591 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3591
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (4 & (BOOST_FT_variations))
-# if (3335 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3335
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (4 & (NDNBOOST_FT_variations))
+# if (3335 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3335
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
 # endif
-# undef BOOST_FT_syntax
-# define BOOST_FT_syntax BOOST_FT_type_function_pointer
-# if ! ! (8 & (BOOST_FT_variations))
-# if (523 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 523
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
+# if ! ! (8 & (NDNBOOST_FT_variations))
+# if (523 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 523
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (8 & (BOOST_FT_variations))
-# if (267 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 267
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (8 & (NDNBOOST_FT_variations))
+# if (267 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 267
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# define BOOST_FT_syntax BOOST_FT_type_function_reference
-# if ! ! (16 & (BOOST_FT_variations))
-# if (531 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 531
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
+# if ! ! (16 & (NDNBOOST_FT_variations))
+# if (531 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 531
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (16 & (BOOST_FT_variations))
-# if (275 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 275
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (16 & (NDNBOOST_FT_variations))
+# if (275 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 275
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# undef BOOST_FT_mfp
-# define BOOST_FT_mfp 1
-# define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
-# if ! ! (96 & (BOOST_FT_variations))
-# if (609 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 609
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# undef NDNBOOST_FT_syntax
+# undef NDNBOOST_FT_mfp
+# define NDNBOOST_FT_mfp 1
+# define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (609 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 609
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (353 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv 
-# define BOOST_FT_flags 353
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (353 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv 
+# define NDNBOOST_FT_flags 353
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (1633 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1633
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (1633 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1633
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (1377 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const
-# define BOOST_FT_flags 1377
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (1377 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const
+# define NDNBOOST_FT_flags 1377
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (2657 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2657
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (2657 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2657
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (2401 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv volatile
-# define BOOST_FT_flags 2401
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (2401 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv volatile
+# define NDNBOOST_FT_flags 2401
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (3681 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell
-# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3681
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (3681 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell
+# define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3681
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# if ! ! (96 & (BOOST_FT_variations))
-# if (3425 & (BOOST_FT_cond)) == (BOOST_FT_cond)
-# define BOOST_FT_ell ...
-# define BOOST_FT_nullary_param
-# define BOOST_FT_cv const volatile
-# define BOOST_FT_flags 3425
-# include BOOST_FT_variate_file
-# undef BOOST_FT_cv
-# undef BOOST_FT_ell
-# undef BOOST_FT_nullary_param
-# undef BOOST_FT_flags
+# if ! ! (96 & (NDNBOOST_FT_variations))
+# if (3425 & (NDNBOOST_FT_cond)) == (NDNBOOST_FT_cond)
+# define NDNBOOST_FT_ell ...
+# define NDNBOOST_FT_nullary_param
+# define NDNBOOST_FT_cv const volatile
+# define NDNBOOST_FT_flags 3425
+# include NDNBOOST_FT_variate_file
+# undef NDNBOOST_FT_cv
+# undef NDNBOOST_FT_ell
+# undef NDNBOOST_FT_nullary_param
+# undef NDNBOOST_FT_flags
 # endif
 # endif
-# undef BOOST_FT_syntax
-# undef BOOST_FT_mfp
+# undef NDNBOOST_FT_syntax
+# undef NDNBOOST_FT_mfp
