diff --git a/include/ndnboost/function_types/config/cc_names.hpp b/include/ndnboost/function_types/config/cc_names.hpp
index ab69d64..8620a0a 100644
--- a/include/ndnboost/function_types/config/cc_names.hpp
+++ b/include/ndnboost/function_types/config/cc_names.hpp
@@ -6,25 +6,25 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
-#define BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
 
-#define BOOST_FT_BUILTIN_CC_NAMES \
-  (( IMPLICIT           , implicit_cc , BOOST_PP_EMPTY                ))\
-  (( CDECL              , cdecl_cc    , BOOST_PP_IDENTITY(__cdecl   ) ))\
-  (( STDCALL            , stdcall_cc  , BOOST_PP_IDENTITY(__stdcall ) ))\
-  (( PASCAL             , pascal_cc   , BOOST_PP_IDENTITY(pascal    ) ))\
-  (( FASTCALL           , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
-  (( CLRCALL            , clrcall_cc  , BOOST_PP_IDENTITY(__clrcall ) ))\
-  (( THISCALL           , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
-  (( IMPLICIT_THISCALL  , thiscall_cc , BOOST_PP_EMPTY                )) 
+#define NDNBOOST_FT_BUILTIN_CC_NAMES \
+  (( IMPLICIT           , implicit_cc , NDNBOOST_PP_EMPTY                ))\
+  (( CDECL              , cdecl_cc    , NDNBOOST_PP_IDENTITY(__cdecl   ) ))\
+  (( STDCALL            , stdcall_cc  , NDNBOOST_PP_IDENTITY(__stdcall ) ))\
+  (( PASCAL             , pascal_cc   , NDNBOOST_PP_IDENTITY(pascal    ) ))\
+  (( FASTCALL           , fastcall_cc , NDNBOOST_PP_IDENTITY(__fastcall) ))\
+  (( CLRCALL            , clrcall_cc  , NDNBOOST_PP_IDENTITY(__clrcall ) ))\
+  (( THISCALL           , thiscall_cc , NDNBOOST_PP_IDENTITY(__thiscall) ))\
+  (( IMPLICIT_THISCALL  , thiscall_cc , NDNBOOST_PP_EMPTY                )) 
 
 // append user-defined cc names to builtin ones
-#ifdef BOOST_FT_CC_NAMES 
-#   define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES BOOST_FT_CC_NAMES
-#   define BOOST_FT_CC_PREPROCESSING 1
+#ifdef NDNBOOST_FT_CC_NAMES 
+#   define NDNBOOST_FT_CC_NAMES_SEQ NDNBOOST_FT_BUILTIN_CC_NAMES NDNBOOST_FT_CC_NAMES
+#   define NDNBOOST_FT_CC_PREPROCESSING 1
 #else
-#   define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES
+#   define NDNBOOST_FT_CC_NAMES_SEQ NDNBOOST_FT_BUILTIN_CC_NAMES
 #endif
 
 #endif
diff --git a/include/ndnboost/function_types/config/compiler.hpp b/include/ndnboost/function_types/config/compiler.hpp
index 9b06d18..87170a1 100644
--- a/include/ndnboost/function_types/config/compiler.hpp
+++ b/include/ndnboost/function_types/config/compiler.hpp
@@ -6,87 +6,87 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
-#define BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
 
 #include <ndnboost/config.hpp>
 #include <ndnboost/detail/workaround.hpp>
 
-#if defined(BOOST_MSVC)
+#if defined(NDNBOOST_MSVC)
 
-#   if BOOST_MSVC < 1310
+#   if NDNBOOST_MSVC < 1310
 #     error "unsupported compiler version"
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
 
       // enable clrcall calling covention (call to .NET managed code) when
       // compiling with /clr 
-#     if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
-#       ifndef BOOST_FT_CC_CLRCALL
-#       define BOOST_FT_CC_CLRCALL callable_builtin
+#     if NDNBOOST_MSVC >= 1400 && defined(__cplusplus_cli)
+#       ifndef NDNBOOST_FT_CC_CLRCALL
+#       define NDNBOOST_FT_CC_CLRCALL callable_builtin
 #       endif
 #     endif
 
       // Intel x86 architecture specific calling conventions
 #     ifdef _M_IX86
-#       define BOOST_FT_COMMON_X86_CCs callable_builtin
-#       if BOOST_MSVC < 1400
+#       define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
+#       if NDNBOOST_MSVC < 1400
           // version 7.1 is missing a keyword to specify the thiscall cc ...
-#         ifndef BOOST_FT_CC_IMPLICIT_THISCALL
-#         define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
-#         ifndef BOOST_FT_CONFIG_OK
+#         ifndef NDNBOOST_FT_CC_IMPLICIT_THISCALL
+#         define NDNBOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
+#         ifndef NDNBOOST_FT_CONFIG_OK
 #           pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")
 #           pragma message("INFO| a compile error.")
 #           pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")
 #           pragma message("INFO| This message can be suppressed by defining")
-#           pragma message("INFO| BOOST_FT_CONFIG_OK.")
+#           pragma message("INFO| NDNBOOST_FT_CONFIG_OK.")
 #         endif
 #         endif
 #       else 
           // ...introduced in version 8
-#         ifndef BOOST_FT_CC_THISCALL
-#         define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
+#         ifndef NDNBOOST_FT_CC_THISCALL
+#         define NDNBOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
 #         endif
 #       endif
 #     endif
 #   endif
 
-#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)
+#elif defined(__GNUC__) && !defined(NDNBOOST_INTEL_LINUX)
 
 #   if __GNUC__ < 3
 #     error "unsupported compiler version"
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
 
 #     if defined(__i386__)
 #       // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
 #       // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
-#       if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
-#         ifndef BOOST_FT_CC_IMPLICIT 
-#         define BOOST_FT_CC_IMPLICIT member|callable_builtin
+#       if NDNBOOST_WORKAROUND(__GNUC__,NDNBOOST_TESTED_AT(4))
+#         ifndef NDNBOOST_FT_CC_IMPLICIT 
+#         define NDNBOOST_FT_CC_IMPLICIT member|callable_builtin
 #         endif
-#         define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
+#         define NDNBOOST_FT_COMMON_X86_CCs non_member|callable_builtin
 #       else
-#         define BOOST_FT_COMMON_X86_CCs callable_builtin
+#         define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
 #       endif
 #     else
-#       ifndef BOOST_FT_CC_IMPLICIT
-#       define BOOST_FT_CC_IMPLICIT callable_builtin
+#       ifndef NDNBOOST_FT_CC_IMPLICIT
+#       define NDNBOOST_FT_CC_IMPLICIT callable_builtin
 #       endif
 #     endif
 #   endif
 
-#   if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_CDECL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__cdecl)
 #     define __cdecl __attribute__((__cdecl__))
 #   endif
-#   if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_STDCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__stdcall)
 #     define __stdcall __attribute__((__stdcall__))
 #   endif
-#   if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
+#   if (defined(NDNBOOST_FT_CC_FASTCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
         && !defined(__fastcall)
 #     define __fastcall __attribute__((__fastcall__))
 #   endif
@@ -99,16 +99,16 @@
 #     pragma message("WARNING: library untested with this compiler version")
 #   endif
 
-#   ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
-#     define BOOST_FT_COMMON_X86_CCs callable_builtin
+#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
+#     define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
 #   endif
 
     // syntactic specialities of cc specifier
-#   define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+#   define NDNBOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
                         result() cc_spec() lparen() type_mod() name() rparen()
 #else
     // only enable default calling convention
-#   define BOOST_FT_CC_IMPLICIT callable_builtin
+#   define NDNBOOST_FT_CC_IMPLICIT callable_builtin
 #endif
 
 
diff --git a/include/ndnboost/function_types/config/config.hpp b/include/ndnboost/function_types/config/config.hpp
index fb428a4..5e85532 100644
--- a/include/ndnboost/function_types/config/config.hpp
+++ b/include/ndnboost/function_types/config/config.hpp
@@ -6,53 +6,53 @@
 
 //------------------------------------------------------------------------------
 
-#ifndef BOOST_FT_CONFIG_HPP_INCLUDED
-#define BOOST_FT_CONFIG_HPP_INCLUDED
+#ifndef NDNBOOST_FT_CONFIG_HPP_INCLUDED
+#define NDNBOOST_FT_CONFIG_HPP_INCLUDED
 
 #include <ndnboost/function_types/config/compiler.hpp>
 #include <ndnboost/function_types/config/cc_names.hpp>
 
 // maximum allowed arity
-#ifndef BOOST_FT_MAX_ARITY
-#define BOOST_FT_MAX_ARITY 20
+#ifndef NDNBOOST_FT_MAX_ARITY
+#define NDNBOOST_FT_MAX_ARITY 20
 #endif
 
 // the most common calling conventions for x86 architecture can be enabled at
 // once in the compiler config
-#ifdef BOOST_FT_COMMON_X86_CCs
-#   ifndef BOOST_FT_CC_CDECL
-#   define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
+#ifdef NDNBOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_CDECL
+#   define NDNBOOST_FT_CC_CDECL NDNBOOST_FT_COMMON_X86_CCs
 #   endif
-#   ifndef BOOST_FT_CC_STDCALL
-#   define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_STDCALL
+#   define NDNBOOST_FT_CC_STDCALL non_variadic|NDNBOOST_FT_COMMON_X86_CCs
 #   endif
-#   ifndef BOOST_FT_CC_FASTCALL
-#   define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
+#   ifndef NDNBOOST_FT_CC_FASTCALL
+#   define NDNBOOST_FT_CC_FASTCALL non_variadic|NDNBOOST_FT_COMMON_X86_CCs
 #   endif
 #endif
 
 // where to place the cc specifier (the common way)
-#ifndef BOOST_FT_SYNTAX
-#   define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
+#ifndef NDNBOOST_FT_SYNTAX
+#   define NDNBOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
                         result() lparen() cc_spec() type_mod() name() rparen()
 #endif
 
 // param for nullary functions
 // set to "void" for compilers that require nullary functions to read 
 // "R (void)" in template partial specialization
-#ifndef BOOST_FT_NULLARY_PARAM
-#define BOOST_FT_NULLARY_PARAM 
+#ifndef NDNBOOST_FT_NULLARY_PARAM
+#define NDNBOOST_FT_NULLARY_PARAM 
 #endif
 
 // there is a pending defect report on cv qualified function types, so support
 // for these types is disabled, unless for compilers where it's known to work
-#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
-#define BOOST_FT_NO_CV_FUNC_SUPPORT 1
+#ifndef NDNBOOST_FT_NO_CV_FUNC_SUPPORT
+#define NDNBOOST_FT_NO_CV_FUNC_SUPPORT 1
 #endif
 
 // full preprocessing implies preprocessing of the ccs
-#if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING)
-#   define BOOST_FT_CC_PREPROCESSING 1
+#if defined(NDNBOOST_FT_PREPROCESSING_MODE) && !defined(NDNBOOST_FT_CC_PREPROCESSING)
+#   define NDNBOOST_FT_CC_PREPROCESSING 1
 #endif
 
 #endif
