diff --git a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp b/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
index 0f821d0..d800e0d 100644
--- a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
+++ b/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
@@ -14,10 +14,10 @@
 #endif
 
 
-#if !BOOST_PP_IS_ITERATING
+#if !NDNBOOST_PP_IS_ITERATING
 
-#   ifndef BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
-#   define BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+#   ifndef NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
+#   define NDNBOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
 #     include <ndnboost/function_types/config/cc_names.hpp>
 
 #     include <ndnboost/preprocessor/cat.hpp>
@@ -32,105 +32,105 @@
 #   include <ndnboost/function_types/detail/encoding/def.hpp>
 #   include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
 
-#   define  BOOST_PP_FILENAME_1 \
+#   define  NDNBOOST_PP_FILENAME_1 \
         <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
-#   define  BOOST_PP_ITERATION_LIMITS \
-        (0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
-#   include BOOST_PP_ITERATE()
-#   if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING
-#     define BOOST_FT_cc_id 1
-#     define BOOST_FT_cc_name implicit_cc
-#     define BOOST_FT_cc BOOST_PP_EMPTY
-#     define BOOST_FT_cond callable_builtin
-#     include BOOST_FT_cc_file
-#     undef BOOST_FT_cond
-#     undef BOOST_FT_cc_name
-#     undef BOOST_FT_cc
-#     undef BOOST_FT_cc_id
-#   elif !defined(BOOST_FT_config_valid) // and generating preprocessed file
-BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc_id 1
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc_name implicit_cc
-BOOST_PP_EXPAND(#)   define BOOST_FT_cc BOOST_PP_EMPTY
-BOOST_PP_EXPAND(#)   define BOOST_FT_cond callable_builtin
+#   define  NDNBOOST_PP_ITERATION_LIMITS \
+        (0,NDNBOOST_PP_SEQ_SIZE(NDNBOOST_FT_CC_NAMES_SEQ)-1)
+#   include NDNBOOST_PP_ITERATE()
+#   if !defined(NDNBOOST_FT_config_valid) && NDNBOOST_FT_CC_PREPROCESSING
+#     define NDNBOOST_FT_cc_id 1
+#     define NDNBOOST_FT_cc_name implicit_cc
+#     define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+#     define NDNBOOST_FT_cond callable_builtin
+#     include NDNBOOST_FT_cc_file
+#     undef NDNBOOST_FT_cond
+#     undef NDNBOOST_FT_cc_name
+#     undef NDNBOOST_FT_cc
+#     undef NDNBOOST_FT_cc_id
+#   elif !defined(NDNBOOST_FT_config_valid) // and generating preprocessed file
+NDNBOOST_PP_EXPAND(#) ifndef NDNBOOST_FT_config_valid
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc_id 1
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc_name implicit_cc
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cond callable_builtin
 #define _()
-BOOST_PP_EXPAND(#)   include BOOST_FT_cc_file
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
 #undef _
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cond
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc_name
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc
-BOOST_PP_EXPAND(#)   undef BOOST_FT_cc_id
-BOOST_PP_EXPAND(#) else
-BOOST_PP_EXPAND(#)   undef BOOST_FT_config_valid
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cond
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc_name
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_cc_id
+NDNBOOST_PP_EXPAND(#) else
+NDNBOOST_PP_EXPAND(#)   undef NDNBOOST_FT_config_valid
+NDNBOOST_PP_EXPAND(#) endif
 
 #   else
-#     undef BOOST_FT_config_valid
+#     undef NDNBOOST_FT_config_valid
 #   endif
 
 #   include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
 #   include <ndnboost/function_types/detail/encoding/undef.hpp>
 
-#elif BOOST_FT_CC_PREPROCESSING
+#elif NDNBOOST_FT_CC_PREPROCESSING
 
-#   define BOOST_FT_cc_id  BOOST_PP_INC(BOOST_PP_FRAME_ITERATION(1))
-#   define BOOST_FT_cc_inf \
-        BOOST_PP_SEQ_ELEM(BOOST_PP_FRAME_ITERATION(1),BOOST_FT_CC_NAMES_SEQ)
+#   define NDNBOOST_FT_cc_id  NDNBOOST_PP_INC(NDNBOOST_PP_FRAME_ITERATION(1))
+#   define NDNBOOST_FT_cc_inf \
+        NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_FRAME_ITERATION(1),NDNBOOST_FT_CC_NAMES_SEQ)
 
-#   define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
-#   define BOOST_FT_cc_name    BOOST_PP_TUPLE_ELEM(3,1,BOOST_FT_cc_inf)
-#   define BOOST_FT_cc         BOOST_PP_TUPLE_ELEM(3,2,BOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_name    NDNBOOST_PP_TUPLE_ELEM(3,1,NDNBOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc         NDNBOOST_PP_TUPLE_ELEM(3,2,NDNBOOST_FT_cc_inf)
 
-#   define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
+#   define NDNBOOST_FT_cond NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
 
-#   if BOOST_FT_cond
-#     define BOOST_FT_config_valid 1
-#     include BOOST_FT_cc_file
+#   if NDNBOOST_FT_cond
+#     define NDNBOOST_FT_config_valid 1
+#     include NDNBOOST_FT_cc_file
 #   endif
 
-#   undef BOOST_FT_cond
+#   undef NDNBOOST_FT_cond
 
-#   undef BOOST_FT_cc_pp_name
-#   undef BOOST_FT_cc_name
-#   undef BOOST_FT_cc
+#   undef NDNBOOST_FT_cc_pp_name
+#   undef NDNBOOST_FT_cc_name
+#   undef NDNBOOST_FT_cc
 
-#   undef BOOST_FT_cc_id
-#   undef BOOST_FT_cc_inf
+#   undef NDNBOOST_FT_cc_id
+#   undef NDNBOOST_FT_cc_inf
 
 #else // if generating preprocessed file
-BOOST_PP_EXPAND(#) define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_ITERATION())
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_id NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION())
 
-#   define BOOST_FT_cc_inf \
-        BOOST_PP_SEQ_ELEM(BOOST_PP_ITERATION(),BOOST_FT_CC_NAMES_SEQ)
+#   define NDNBOOST_FT_cc_inf \
+        NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_ITERATION(),NDNBOOST_FT_CC_NAMES_SEQ)
 
-#   define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
+#   define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
 
-#   define BOOST_FT_CC_DEF(name,index) \
-        name BOOST_PP_TUPLE_ELEM(3,index,BOOST_FT_cc_inf)
-BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc_name,1)
-BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc,2)
-#   undef  BOOST_FT_CC_DEF
+#   define NDNBOOST_FT_CC_DEF(name,index) \
+        name NDNBOOST_PP_TUPLE_ELEM(3,index,NDNBOOST_FT_cc_inf)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc_name,1)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_CC_DEF(NDNBOOST_FT_cc,2)
+#   undef  NDNBOOST_FT_CC_DEF
 
-#   define BOOST_FT_cc_cond_v BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
-BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
-#   undef  BOOST_FT_cc_cond_v
+#   define NDNBOOST_FT_cc_cond_v NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
+NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cond NDNBOOST_FT_cc_cond_v
+#   undef  NDNBOOST_FT_cc_cond_v
 
-#   undef BOOST_FT_cc_pp_name
-#   undef BOOST_FT_cc_inf
+#   undef NDNBOOST_FT_cc_pp_name
+#   undef NDNBOOST_FT_cc_inf
 
-BOOST_PP_EXPAND(#) if BOOST_FT_cond
-BOOST_PP_EXPAND(#)   define BOOST_FT_config_valid 1
+NDNBOOST_PP_EXPAND(#) if NDNBOOST_FT_cond
+NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_config_valid 1
 #define _()
-BOOST_PP_EXPAND(#)   include BOOST_FT_cc_file
+NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
 #undef _
-BOOST_PP_EXPAND(#) endif
+NDNBOOST_PP_EXPAND(#) endif
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cond
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cond
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_name
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc
 
-BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
+NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_cc_id
 
 #endif
 
diff --git a/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
index da4079c..391ec1a 100644
--- a/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
+++ b/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
@@ -9,112 +9,112 @@
 // no include guards, this file is intended for multiple inclusions
 
 // this file has been generated from the master.hpp file in the same directory
-# define BOOST_FT_cc_id 1
-# define BOOST_FT_cc_name implicit_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# define NDNBOOST_FT_cc_id 1
+# define NDNBOOST_FT_cc_name implicit_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_IMPLICIT
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 2
-# define BOOST_FT_cc_name cdecl_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl )
-# define BOOST_FT_cond BOOST_FT_CC_CDECL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 2
+# define NDNBOOST_FT_cc_name cdecl_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__cdecl )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_CDECL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 3
-# define BOOST_FT_cc_name stdcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall )
-# define BOOST_FT_cond BOOST_FT_CC_STDCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 3
+# define NDNBOOST_FT_cc_name stdcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__stdcall )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_STDCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 4
-# define BOOST_FT_cc_name pascal_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(pascal )
-# define BOOST_FT_cond BOOST_FT_CC_PASCAL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 4
+# define NDNBOOST_FT_cc_name pascal_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(pascal )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_PASCAL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 5
-# define BOOST_FT_cc_name fastcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall)
-# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 5
+# define NDNBOOST_FT_cc_name fastcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__fastcall)
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_FASTCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 6
-# define BOOST_FT_cc_name clrcall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall )
-# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 6
+# define NDNBOOST_FT_cc_name clrcall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__clrcall )
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_CLRCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 7
-# define BOOST_FT_cc_name thiscall_cc
-# define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall)
-# define BOOST_FT_cond BOOST_FT_CC_THISCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 7
+# define NDNBOOST_FT_cc_name thiscall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_IDENTITY(__thiscall)
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_THISCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# define BOOST_FT_cc_id 8
-# define BOOST_FT_cc_name thiscall_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
-# if BOOST_FT_cond
-# define BOOST_FT_config_valid 1
-# include BOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# define NDNBOOST_FT_cc_id 8
+# define NDNBOOST_FT_cc_name thiscall_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond NDNBOOST_FT_CC_IMPLICIT_THISCALL
+# if NDNBOOST_FT_cond
+# define NDNBOOST_FT_config_valid 1
+# include NDNBOOST_FT_cc_file
 # endif
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
-# ifndef BOOST_FT_config_valid
-# define BOOST_FT_cc_id 1
-# define BOOST_FT_cc_name implicit_cc
-# define BOOST_FT_cc BOOST_PP_EMPTY
-# define BOOST_FT_cond 0x00000001
-# include BOOST_FT_cc_file
-# undef BOOST_FT_cond
-# undef BOOST_FT_cc_name
-# undef BOOST_FT_cc
-# undef BOOST_FT_cc_id
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
+# ifndef NDNBOOST_FT_config_valid
+# define NDNBOOST_FT_cc_id 1
+# define NDNBOOST_FT_cc_name implicit_cc
+# define NDNBOOST_FT_cc NDNBOOST_PP_EMPTY
+# define NDNBOOST_FT_cond 0x00000001
+# include NDNBOOST_FT_cc_file
+# undef NDNBOOST_FT_cond
+# undef NDNBOOST_FT_cc_name
+# undef NDNBOOST_FT_cc
+# undef NDNBOOST_FT_cc_id
 # else
-# undef BOOST_FT_config_valid
+# undef NDNBOOST_FT_config_valid
 # endif
