diff --git a/include/ndnboost/config/abi_prefix.hpp b/include/ndnboost/config/abi_prefix.hpp
index 4f70b1b..f1299ed 100644
--- a/include/ndnboost/config/abi_prefix.hpp
+++ b/include/ndnboost/config/abi_prefix.hpp
@@ -6,8 +6,8 @@
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt).
 
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# define BOOST_CONFIG_ABI_PREFIX_HPP
+#ifndef NDNBOOST_CONFIG_ABI_PREFIX_HPP
+# define NDNBOOST_CONFIG_ABI_PREFIX_HPP
 #else
 # error double inclusion of header ndnboost/config/abi_prefix.hpp is an error
 #endif
@@ -15,8 +15,8 @@
 #include <ndnboost/config.hpp>
 
 // this must occur after all other includes and before any code appears:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_PREFIX
+#ifdef NDNBOOST_HAS_ABI_HEADERS
+#  include NDNBOOST_ABI_PREFIX
 #endif
 
 #if defined( __BORLANDC__ )
diff --git a/include/ndnboost/config/abi_suffix.hpp b/include/ndnboost/config/abi_suffix.hpp
index 054843c..9d65b83 100644
--- a/include/ndnboost/config/abi_suffix.hpp
+++ b/include/ndnboost/config/abi_suffix.hpp
@@ -9,15 +9,15 @@
 // This header should be #included AFTER code that was preceded by a #include
 // <ndnboost/config/abi_prefix.hpp>.
 
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
+#ifndef NDNBOOST_CONFIG_ABI_PREFIX_HPP
 # error Header ndnboost/config/abi_suffix.hpp must only be used after ndnboost/config/abi_prefix.hpp
 #else
-# undef BOOST_CONFIG_ABI_PREFIX_HPP
+# undef NDNBOOST_CONFIG_ABI_PREFIX_HPP
 #endif
 
 // the suffix header occurs after all of our code:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_SUFFIX
+#ifdef NDNBOOST_HAS_ABI_HEADERS
+#  include NDNBOOST_ABI_SUFFIX
 #endif
 
 #if defined( __BORLANDC__ )
diff --git a/include/ndnboost/config/auto_link.hpp b/include/ndnboost/config/auto_link.hpp
index 002bfb9..95cb4ab 100644
--- a/include/ndnboost/config/auto_link.hpp
+++ b/include/ndnboost/config/auto_link.hpp
@@ -17,15 +17,15 @@
 
 Before including this header you must define one or more of define the following macros:
 
-BOOST_LIB_NAME:           Required: A string containing the basename of the library,
+NDNBOOST_LIB_NAME:           Required: A string containing the basename of the library,
                           for example boost_regex.
-BOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
-BOOST_DYN_LINK:           Optional: when set link to dll rather than static library.
-BOOST_LIB_DIAGNOSTIC:     Optional: when set the header will print out the name
+NDNBOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
+NDNBOOST_DYN_LINK:           Optional: when set link to dll rather than static library.
+NDNBOOST_LIB_DIAGNOSTIC:     Optional: when set the header will print out the name
                           of the library selected (useful for debugging).
-BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
+NDNBOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to NDNBOOST_LIB_NAME.lib,
                           rather than a mangled-name version.
-BOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.
+NDNBOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.
                           This is essentially the same as the default name-mangled version, but without
                           the compiler name and version, or the Boost version.  Just the build options.
 
@@ -39,26 +39,26 @@
 selected here, the name of the lib is selected according to the following
 formula:
 
-BOOST_LIB_PREFIX
-   + BOOST_LIB_NAME
+NDNBOOST_LIB_PREFIX
+   + NDNBOOST_LIB_NAME
    + "_"
-   + BOOST_LIB_TOOLSET
-   + BOOST_LIB_THREAD_OPT
-   + BOOST_LIB_RT_OPT
+   + NDNBOOST_LIB_TOOLSET
+   + NDNBOOST_LIB_THREAD_OPT
+   + NDNBOOST_LIB_RT_OPT
    "-"
-   + BOOST_LIB_VERSION
+   + NDNBOOST_LIB_VERSION
 
 These are defined as:
 
-BOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
+NDNBOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
 
-BOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
+NDNBOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
 
-BOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
+NDNBOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
 
-BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
+NDNBOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
 
-BOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
+NDNBOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
                       contains one or more of the following letters after
                       a hyphen:
 
@@ -69,37 +69,37 @@
                       p      STLport build.
                       n      STLport build without its IOStreams.
 
-BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
+NDNBOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
 
 
 ***************************************************************************/
 
 #ifdef __cplusplus
-#  ifndef BOOST_CONFIG_HPP
+#  ifndef NDNBOOST_CONFIG_HPP
 #     include <ndnboost/config.hpp>
 #  endif
 #elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
 //
 // C language compatability (no, honestly)
 //
-#  define BOOST_MSVC _MSC_VER
-#  define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#  define BOOST_DO_STRINGIZE(X) #X
+#  define NDNBOOST_MSVC _MSC_VER
+#  define NDNBOOST_STRINGIZE(X) NDNBOOST_DO_STRINGIZE(X)
+#  define NDNBOOST_DO_STRINGIZE(X) #X
 #endif
 //
 // Only include what follows for known and supported compilers:
 //
-#if defined(BOOST_MSVC) \
+#if defined(NDNBOOST_MSVC) \
     || defined(__BORLANDC__) \
     || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
     || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
 
-#ifndef BOOST_VERSION_HPP
+#ifndef NDNBOOST_VERSION_HPP
 #  include <ndnboost/version.hpp>
 #endif
 
-#ifndef BOOST_LIB_NAME
-#  error "Macro BOOST_LIB_NAME not set (internal error)"
+#ifndef NDNBOOST_LIB_NAME
+#  error "Macro NDNBOOST_LIB_NAME not set (internal error)"
 #endif
 
 //
@@ -113,79 +113,79 @@
 //
 // select toolset if not defined already:
 //
-#ifndef BOOST_LIB_TOOLSET
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
+#ifndef NDNBOOST_LIB_TOOLSET
+#  if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1200)
     // Note: no compilers before 1200 are supported
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
 
 #    ifdef UNDER_CE
        // eVC4:
-#      define BOOST_LIB_TOOLSET "evc4"
+#      define NDNBOOST_LIB_TOOLSET "evc4"
 #    else
        // vc6:
-#      define BOOST_LIB_TOOLSET "vc6"
+#      define NDNBOOST_LIB_TOOLSET "vc6"
 #    endif
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1310)
 
      // vc7:
-#    define BOOST_LIB_TOOLSET "vc7"
+#    define NDNBOOST_LIB_TOOLSET "vc7"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1400)
 
      // vc71:
-#    define BOOST_LIB_TOOLSET "vc71"
+#    define NDNBOOST_LIB_TOOLSET "vc71"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1500)
 
      // vc80:
-#    define BOOST_LIB_TOOLSET "vc80"
+#    define NDNBOOST_LIB_TOOLSET "vc80"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1600)
 
      // vc90:
-#    define BOOST_LIB_TOOLSET "vc90"
+#    define NDNBOOST_LIB_TOOLSET "vc90"
 
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
+#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1700)
 
      // vc10:
-#    define BOOST_LIB_TOOLSET "vc100"
+#    define NDNBOOST_LIB_TOOLSET "vc100"
 
-#  elif defined(BOOST_MSVC)
+#  elif defined(NDNBOOST_MSVC)
 
      // vc11:
-#    define BOOST_LIB_TOOLSET "vc110"
+#    define NDNBOOST_LIB_TOOLSET "vc110"
 
 #  elif defined(__BORLANDC__)
 
      // CBuilder 6:
-#    define BOOST_LIB_TOOLSET "bcb"
+#    define NDNBOOST_LIB_TOOLSET "bcb"
 
 #  elif defined(__ICL)
 
      // Intel C++, no version number:
-#    define BOOST_LIB_TOOLSET "iw"
+#    define NDNBOOST_LIB_TOOLSET "iw"
 
 #  elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
 
      // Metrowerks CodeWarrior 8.x
-#    define BOOST_LIB_TOOLSET "cw8"
+#    define NDNBOOST_LIB_TOOLSET "cw8"
 
 #  elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
 
      // Metrowerks CodeWarrior 9.x
-#    define BOOST_LIB_TOOLSET "cw9"
+#    define NDNBOOST_LIB_TOOLSET "cw9"
 
 #  endif
-#endif // BOOST_LIB_TOOLSET
+#endif // NDNBOOST_LIB_TOOLSET
 
 //
 // select thread opt:
 //
 #if defined(_MT) || defined(__MT__)
-#  define BOOST_LIB_THREAD_OPT "-mt"
+#  define NDNBOOST_LIB_THREAD_OPT "-mt"
 #else
-#  define BOOST_LIB_THREAD_OPT
+#  define NDNBOOST_LIB_THREAD_OPT
 #endif
 
 #if defined(_MSC_VER) || defined(__MWERKS__)
@@ -195,51 +195,51 @@
 #     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydp"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdp"
+#            define NDNBOOST_LIB_RT_OPT "-gdp"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdp"
+#            define NDNBOOST_LIB_RT_OPT "-gdp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-p"
+#            define NDNBOOST_LIB_RT_OPT "-p"
 #        endif
 
 #     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydpn"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdpn"
+#            define NDNBOOST_LIB_RT_OPT "-gdpn"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gydpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdpn"
+#            define NDNBOOST_LIB_RT_OPT "-gdpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-pn"
+#            define NDNBOOST_LIB_RT_OPT "-pn"
 #        endif
 
 #     else
 
-#        if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gyd"
+#        if defined(_DEBUG) && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-gyd"
 #        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gd"
+#            define NDNBOOST_LIB_RT_OPT "-gd"
 #        else
-#            define BOOST_LIB_RT_OPT
+#            define NDNBOOST_LIB_RT_OPT
 #        endif
 
 #     endif
@@ -249,52 +249,52 @@
 #     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-sgydp"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdp"
+#            define NDNBOOST_LIB_RT_OPT "-sgdp"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydp"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgydp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdp"
+#             define NDNBOOST_LIB_RT_OPT "-sgdp"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-sp"
+#            define NDNBOOST_LIB_RT_OPT "-sp"
 #        endif
 
 #     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 
 #        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#            define NDNBOOST_LIB_RT_OPT "-sgydpn"
 #        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdpn"
+#            define NDNBOOST_LIB_RT_OPT "-sgdpn"
 #        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydpn"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgydpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdpn"
+#             define NDNBOOST_LIB_RT_OPT "-sgdpn"
 #            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 #            error "Build options aren't compatible with pre-built libraries"
 #        else
-#            define BOOST_LIB_RT_OPT "-spn"
+#            define NDNBOOST_LIB_RT_OPT "-spn"
 #        endif
 
 #     else
 
 #        if defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgyd"
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#             define NDNBOOST_LIB_RT_OPT "-sgyd"
 #        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgd"
+#             define NDNBOOST_LIB_RT_OPT "-sgd"
 #        else
-#            define BOOST_LIB_RT_OPT "-s"
+#            define NDNBOOST_LIB_RT_OPT "-s"
 #        endif
 
 #     endif
@@ -307,7 +307,7 @@
 // figure out whether we want the debug builds or not:
 //
 #if __BORLANDC__ > 0x561
-#pragma defineonoption BOOST_BORLAND_DEBUG -v
+#pragma defineonoption NDNBOOST_BORLAND_DEBUG -v
 #endif
 //
 // sanity check:
@@ -318,28 +318,28 @@
 
 #  ifdef _RTLDLL
 
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-yd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-d"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT -y
+#     if defined(NDNBOOST_BORLAND_DEBUG)\
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-yd"
+#     elif defined(NDNBOOST_BORLAND_DEBUG)
+#         define NDNBOOST_LIB_RT_OPT "-d"
+#     elif defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT -y
 #     else
-#         define BOOST_LIB_RT_OPT
+#         define NDNBOOST_LIB_RT_OPT
 #     endif
 
 #  else
 
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-syd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-sd"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-sy"
+#     if defined(NDNBOOST_BORLAND_DEBUG)\
+               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-syd"
+#     elif defined(NDNBOOST_BORLAND_DEBUG)
+#         define NDNBOOST_LIB_RT_OPT "-sd"
+#     elif defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
+#         define NDNBOOST_LIB_RT_OPT "-sy"
 #     else
-#         define BOOST_LIB_RT_OPT "-s"
+#         define NDNBOOST_LIB_RT_OPT "-s"
 #     endif
 
 #  endif
@@ -349,38 +349,38 @@
 //
 // select linkage opt:
 //
-#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
-#  define BOOST_LIB_PREFIX
-#elif defined(BOOST_DYN_LINK)
+#if (defined(_DLL) || defined(_RTLDLL)) && defined(NDNBOOST_DYN_LINK)
+#  define NDNBOOST_LIB_PREFIX
+#elif defined(NDNBOOST_DYN_LINK)
 #  error "Mixing a dll boost library with a static runtime is a really bad idea..."
 #else
-#  define BOOST_LIB_PREFIX "lib"
+#  define NDNBOOST_LIB_PREFIX "lib"
 #endif
 
 //
 // now include the lib:
 //
-#if defined(BOOST_LIB_NAME) \
-      && defined(BOOST_LIB_PREFIX) \
-      && defined(BOOST_LIB_TOOLSET) \
-      && defined(BOOST_LIB_THREAD_OPT) \
-      && defined(BOOST_LIB_RT_OPT) \
-      && defined(BOOST_LIB_VERSION)
+#if defined(NDNBOOST_LIB_NAME) \
+      && defined(NDNBOOST_LIB_PREFIX) \
+      && defined(NDNBOOST_LIB_TOOLSET) \
+      && defined(NDNBOOST_LIB_THREAD_OPT) \
+      && defined(NDNBOOST_LIB_RT_OPT) \
+      && defined(NDNBOOST_LIB_VERSION)
 
-#ifdef BOOST_AUTO_LINK_TAGGED
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
+#ifdef NDNBOOST_AUTO_LINK_TAGGED
+#  pragma comment(lib, NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT ".lib")
 #  endif
-#elif defined(BOOST_AUTO_LINK_NOMANGLE)
-#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
+#elif defined(NDNBOOST_AUTO_LINK_NOMANGLE)
+#  pragma comment(lib, NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) ".lib")
 #  endif
 #else
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
+#  pragma comment(lib, NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) "-" NDNBOOST_LIB_TOOLSET NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT "-" NDNBOOST_LIB_VERSION ".lib")
+#  ifdef NDNBOOST_LIB_DIAGNOSTIC
+#     pragma message ("Linking to lib file: " NDNBOOST_LIB_PREFIX NDNBOOST_STRINGIZE(NDNBOOST_LIB_NAME) "-" NDNBOOST_LIB_TOOLSET NDNBOOST_LIB_THREAD_OPT NDNBOOST_LIB_RT_OPT "-" NDNBOOST_LIB_VERSION ".lib")
 #  endif
 #endif
 
@@ -394,30 +394,30 @@
 //
 // finally undef any macros we may have set:
 //
-#ifdef BOOST_LIB_PREFIX
-#  undef BOOST_LIB_PREFIX
+#ifdef NDNBOOST_LIB_PREFIX
+#  undef NDNBOOST_LIB_PREFIX
 #endif
-#if defined(BOOST_LIB_NAME)
-#  undef BOOST_LIB_NAME
+#if defined(NDNBOOST_LIB_NAME)
+#  undef NDNBOOST_LIB_NAME
 #endif
 // Don't undef this one: it can be set by the user and should be the 
 // same for all libraries:
-//#if defined(BOOST_LIB_TOOLSET)
-//#  undef BOOST_LIB_TOOLSET
+//#if defined(NDNBOOST_LIB_TOOLSET)
+//#  undef NDNBOOST_LIB_TOOLSET
 //#endif
-#if defined(BOOST_LIB_THREAD_OPT)
-#  undef BOOST_LIB_THREAD_OPT
+#if defined(NDNBOOST_LIB_THREAD_OPT)
+#  undef NDNBOOST_LIB_THREAD_OPT
 #endif
-#if defined(BOOST_LIB_RT_OPT)
-#  undef BOOST_LIB_RT_OPT
+#if defined(NDNBOOST_LIB_RT_OPT)
+#  undef NDNBOOST_LIB_RT_OPT
 #endif
-#if defined(BOOST_LIB_LINK_OPT)
-#  undef BOOST_LIB_LINK_OPT
+#if defined(NDNBOOST_LIB_LINK_OPT)
+#  undef NDNBOOST_LIB_LINK_OPT
 #endif
-#if defined(BOOST_LIB_DEBUG_OPT)
-#  undef BOOST_LIB_DEBUG_OPT
+#if defined(NDNBOOST_LIB_DEBUG_OPT)
+#  undef NDNBOOST_LIB_DEBUG_OPT
 #endif
-#if defined(BOOST_DYN_LINK)
-#  undef BOOST_DYN_LINK
+#if defined(NDNBOOST_DYN_LINK)
+#  undef NDNBOOST_DYN_LINK
 #endif
 
diff --git a/include/ndnboost/config/compiler/borland.hpp b/include/ndnboost/config/compiler/borland.hpp
index 99965c4..7826232 100644
--- a/include/ndnboost/config/compiler/borland.hpp
+++ b/include/ndnboost/config/compiler/borland.hpp
@@ -18,7 +18,7 @@
 
 // last known compiler version:
 #if (__BORLANDC__ > 0x613)
-//#  if defined(BOOST_ASSERT_CONFIG)
+//#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 //#  else
 //#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
@@ -30,31 +30,31 @@
 //
 // Support macros to help with standard library detection
 #if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
-#  define BOOST_BCB_WITH_ROGUE_WAVE
+#  define NDNBOOST_BCB_WITH_ROGUE_WAVE
 #elif __BORLANDC__ < 0x570
-#  define BOOST_BCB_WITH_STLPORT
+#  define NDNBOOST_BCB_WITH_STLPORT
 #else
-#  define BOOST_BCB_WITH_DINKUMWARE
+#  define NDNBOOST_BCB_WITH_DINKUMWARE
 #endif
 
 //
 // Version 5.0 and below:
 #   if __BORLANDC__ <= 0x0550
 // Borland C++Builder 4 and 5:
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #     if __BORLANDC__ == 0x0550
 // Borland C++Builder 5, command-line compiler 5.5:
-#       define BOOST_NO_OPERATORS_IN_NAMESPACE
+#       define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #     endif
 // Variadic macros do not exist for C++ Builder versions 5 and below
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #   endif
 
 // Version 5.51 and below:
 #if (__BORLANDC__ <= 0x551)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  define BOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_NO_CV_SPECIALIZATIONS
+#  define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+#  define NDNBOOST_NO_DEDUCED_TYPENAME
 // workaround for missing WCHAR_MAX/WCHAR_MIN:
 #ifdef __cplusplus
 #include <climits>
@@ -91,52 +91,52 @@
 // new bug in 5.61:
 #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
    // this seems to be needed by the command line compiler, but not the IDE:
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #endif
 
 // Borland C++ Builder 2006 Update 2 and below:
 #if (__BORLANDC__ <= 0x582)
-#  define BOOST_NO_SFINAE
-#  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#  define BOOST_NO_TEMPLATE_TEMPLATES
+#  define NDNBOOST_NO_SFINAE
+#  define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
 
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
 
 #  ifdef _WIN32
-#     define BOOST_NO_SWPRINTF
+#     define NDNBOOST_NO_SWPRINTF
 #  elif defined(linux) || defined(__linux__) || defined(__linux)
       // we should really be able to do without this
       // but the wcs* functions aren't imported into std::
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
       // _CPPUNWIND doesn't get automatically set for some reason:
-#     pragma defineonoption BOOST_CPPUNWIND -x
+#     pragma defineonoption NDNBOOST_CPPUNWIND -x
 #  endif
 #endif
 
 #if (__BORLANDC__ <= 0x613)  // Beman has asked Alisdair for more info
    // we shouldn't really need this - but too many things choke
    // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_NO_IS_ABSTRACT
-#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_SP_NO_SP_CONVERTIBLE
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_IS_ABSTRACT
+#  define NDNBOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_SP_NO_SP_CONVERTIBLE
 
 // Temporary workaround
-#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 #endif
 
 // Borland C++ Builder 2008 and below:
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#  define BOOST_NO_NESTED_FRIENDSHIP
-#  define BOOST_NO_TYPENAME_WITH_CTOR
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_NESTED_FRIENDSHIP
+#  define NDNBOOST_NO_TYPENAME_WITH_CTOR
 #if (__BORLANDC__ < 0x600)
-#  define BOOST_ILLEGAL_CV_REFERENCES
+#  define NDNBOOST_ILLEGAL_CV_REFERENCES
 #endif
 
 //
@@ -144,78 +144,78 @@
 //
 // Borland C++ Builder 2008 and below:
 #if (__BORLANDC__ >= 0x599)
-#  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
+#  pragma defineonoption NDNBOOST_CODEGEAR_0X_SUPPORT -Ax
 #endif
 //
 // C++0x Macros:
 //
-#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES 
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#if !defined( NDNBOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES 
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #else
-#  define BOOST_HAS_ALIGNOF
-#  define BOOST_HAS_CHAR16_T
-#  define BOOST_HAS_CHAR32_T
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-#  define BOOST_HAS_REF_QUALIFIER
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
+#  define NDNBOOST_HAS_ALIGNOF
+#  define NDNBOOST_HAS_CHAR16_T
+#  define NDNBOOST_HAS_CHAR32_T
+#  define NDNBOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_EXPLICIT_CONVERSION_OPS
+#  define NDNBOOST_HAS_REF_QUALIFIER
+#  define NDNBOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_STATIC_ASSERT
 #endif
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #if __BORLANDC__ >= 0x590
-#  define BOOST_HAS_TR1_HASH
+#  define NDNBOOST_HAS_TR1_HASH
 
-#  define BOOST_HAS_MACRO_USE_FACET
+#  define NDNBOOST_HAS_MACRO_USE_FACET
 #endif
 
 //
 // Post 0x561 we have long long and stdint.h:
 #if __BORLANDC__ >= 0x561
 #  ifndef __NO_LONG_LONG
-#     define BOOST_HAS_LONG_LONG
+#     define NDNBOOST_HAS_LONG_LONG
 #  else
-#     define BOOST_NO_LONG_LONG
+#     define NDNBOOST_NO_LONG_LONG
 #  endif
    // On non-Win32 platforms let the platform config figure this out:
 #  ifdef _WIN32
-#      define BOOST_HAS_STDINT_H
+#      define NDNBOOST_HAS_STDINT_H
 #  endif
 #endif
 
 // Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
 // defined, then we have 0x560 or greater with the Rogue Wave implementation
 // which presumably has the std::DBL_MAX bug.
-#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
+#if defined( NDNBOOST_BCB_WITH_ROGUE_WAVE )
 // <climits> is partly broken, some macros define symbols that are really in
 // namespace std, so you end up having to use illegal constructs like
 // std::DBL_MAX, as a fix we'll just include float.h and have done with:
@@ -225,53 +225,53 @@
 // __int64:
 //
 #if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 //
 // check for exception handling support:
 //
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 //
 // all versions have a <dirent.h>:
 //
 #ifndef __STRICT_ANSI__
-#  define BOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_DIRENT_H
 #endif
 //
 // all versions support __declspec:
 //
 #if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 //
 // ABI fixing headers:
 //
 #if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
 #endif
 #endif
 //
 // Disable Win32 support in ANSI mode:
 //
 #if __BORLANDC__ < 0x600
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+#  pragma defineonoption NDNBOOST_DISABLE_WIN32 -A
 #elif defined(__STRICT_ANSI__)
-#  define BOOST_DISABLE_WIN32
+#  define NDNBOOST_DISABLE_WIN32
 #endif
 //
 // MSVC compatibility mode does some nasty things:
 // TODO: look up if this doesn't apply to the whole 12xx range
 //
 #if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_VOID_RETURNS
 #endif
 
 // Borland did not implement value-initialization completely, as I reported
@@ -279,9 +279,9 @@
 // zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, April 2010)
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
-#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
+#define NDNBOOST_COMPILER "Borland C++ version " NDNBOOST_STRINGIZE(__BORLANDC__)
 
 
 
diff --git a/include/ndnboost/config/compiler/clang.hpp b/include/ndnboost/config/compiler/clang.hpp
index 8e38821..d8ab35c 100644
--- a/include/ndnboost/config/compiler/clang.hpp
+++ b/include/ndnboost/config/compiler/clang.hpp
@@ -8,151 +8,151 @@
 
 // Clang compiler setup.
 
-#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !__has_feature(cxx_exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
-#  define BOOST_NO_TYPEID
+#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_TYPEID)
+#  define NDNBOOST_NO_TYPEID
 #endif
 
 #if defined(__int64) && !defined(__GNUC__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 
-#define BOOST_HAS_NRVO
+#define NDNBOOST_HAS_NRVO
 
 // Clang supports "long long" in all compilation modes.
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 //
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
-#  define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
+#  define NDNBOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
+#  define NDNBOOST_SYMBOL_IMPORT
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
 #endif
 
 // 
-// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through 
+// The NDNBOOST_FALLTHROUGH macro can be used to annotate implicit fall-through 
 // between switch labels. 
 // 
 #if __cplusplus >= 201103L && defined(__has_warning) 
 #  if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") 
-#    define BOOST_FALLTHROUGH [[clang::fallthrough]] 
+#    define NDNBOOST_FALLTHROUGH [[clang::fallthrough]] 
 #  endif 
 #endif 
 
 #if !__has_feature(cxx_auto_type)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
 #if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
 #endif
 
 #if !__has_feature(cxx_constexpr)
-#  define BOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
 #endif
 
 #if !__has_feature(cxx_decltype)
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #endif
 
 #if !__has_feature(cxx_decltype_incomplete_return_types)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
 #endif
 
 #if !__has_feature(cxx_defaulted_functions)
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 #endif
 
 #if !__has_feature(cxx_deleted_functions)
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #endif
 
 #if !__has_feature(cxx_explicit_conversions)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 #endif
 
 #if !__has_feature(cxx_default_function_template_args)
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
 
 #if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #endif
 
 #if !__has_feature(cxx_lambdas)
-#  define BOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
 #endif
 
 #if !__has_feature(cxx_local_type_template_args)
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #endif
 
 #if !__has_feature(cxx_noexcept)
-#  define BOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
 #endif
 
 #if !__has_feature(cxx_nullptr)
-#  define BOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_NULLPTR
 #endif
 
 #if !__has_feature(cxx_range_for)
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
 #endif
 
 #if !__has_feature(cxx_raw_string_literals)
-#  define BOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
 #endif
 
 #if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 #if !__has_feature(cxx_rvalue_references)
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 #endif
 
 #if !__has_feature(cxx_strong_enums)
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
 
 #if !__has_feature(cxx_static_assert)
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #endif
 
 #if !__has_feature(cxx_alias_templates)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
 #endif
 
 #if !__has_feature(cxx_unicode_literals)
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #endif
 
 #if !__has_feature(cxx_variadic_templates)
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #endif
 
 #if !__has_feature(cxx_user_literals)
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
 // Clang always supports variadic macros
 // Clang always supports extern templates
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "Clang version " __clang_version__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "Clang version " __clang_version__
 #endif
 
 // Macro used to identify the Clang compiler.
-#define BOOST_CLANG 1
+#define NDNBOOST_CLANG 1
 
diff --git a/include/ndnboost/config/compiler/codegear.hpp b/include/ndnboost/config/compiler/codegear.hpp
index 7108663..f46c9ae 100644
--- a/include/ndnboost/config/compiler/codegear.hpp
+++ b/include/ndnboost/config/compiler/codegear.hpp
@@ -9,7 +9,7 @@
 
 //  CodeGear C++ compiler setup:
 
-#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
+#if !defined( NDNBOOST_WITH_CODEGEAR_WARNINGS )
 // these warnings occur frequently in optimized template code
 # pragma warn -8004 // var assigned value, but never used
 # pragma warn -8008 // condition always true/false
@@ -21,7 +21,7 @@
 // versions check:
 // last known and checked version is 0x621
 #if (__CODEGEARC__ > 0x621)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 #     pragma message( "Unknown compiler version - please run the configure tests and report the results")
@@ -30,26 +30,26 @@
 
 // CodeGear C++ Builder 2009
 #if (__CODEGEARC__ <= 0x613)
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
    // we shouldn't really need this - but too many things choke
    // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_SP_NO_SP_CONVERTIBLE
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_SP_NO_SP_CONVERTIBLE
 #endif
 
 // CodeGear C++ Builder 2010
 #if (__CODEGEARC__ <= 0x621)
-#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 // Temporary hack, until specific MPL preprocessed headers are generated
-#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#  define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 
 // CodeGear has not yet completely implemented value-initialization, for
 // example for array types, as I reported in 2010: Embarcadero Report 83751,
@@ -58,7 +58,7 @@
 // Last checked version: Embarcadero C++ 6.21
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, April 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
 #  if defined(NDEBUG) && defined(__cplusplus)
       // fix broken <cstring> so that Boost.test works:
@@ -76,105 +76,105 @@
 // C++0x macros:
 //
 #if (__CODEGEARC__ <= 0x620)
-#define BOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #else
-#define BOOST_HAS_STATIC_ASSERT
+#define NDNBOOST_HAS_STATIC_ASSERT
 #endif
-#define BOOST_HAS_CHAR16_T
-#define BOOST_HAS_CHAR32_T
-#define BOOST_HAS_LONG_LONG
-// #define BOOST_HAS_ALIGNOF
-#define BOOST_HAS_DECLTYPE
-#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-// #define BOOST_HAS_RVALUE_REFS
-#define BOOST_HAS_SCOPED_ENUM
-// #define BOOST_HAS_STATIC_ASSERT
-#define BOOST_HAS_STD_TYPE_TRAITS
+#define NDNBOOST_HAS_CHAR16_T
+#define NDNBOOST_HAS_CHAR32_T
+#define NDNBOOST_HAS_LONG_LONG
+// #define NDNBOOST_HAS_ALIGNOF
+#define NDNBOOST_HAS_DECLTYPE
+#define NDNBOOST_HAS_EXPLICIT_CONVERSION_OPS
+// #define NDNBOOST_HAS_RVALUE_REFS
+#define NDNBOOST_HAS_SCOPED_ENUM
+// #define NDNBOOST_HAS_STATIC_ASSERT
+#define NDNBOOST_HAS_STD_TYPE_TRAITS
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // TR1 macros:
 //
-#define BOOST_HAS_TR1_HASH
-#define BOOST_HAS_TR1_TYPE_TRAITS
-#define BOOST_HAS_TR1_UNORDERED_MAP
-#define BOOST_HAS_TR1_UNORDERED_SET
+#define NDNBOOST_HAS_TR1_HASH
+#define NDNBOOST_HAS_TR1_TYPE_TRAITS
+#define NDNBOOST_HAS_TR1_UNORDERED_MAP
+#define NDNBOOST_HAS_TR1_UNORDERED_SET
 
-#define BOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_HAS_MACRO_USE_FACET
 
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 
 // On non-Win32 platforms let the platform config figure this out:
 #ifdef _WIN32
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 //
 // __int64:
 //
 #if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
+#  define NDNBOOST_HAS_MS_INT64
 #endif
 //
 // check for exception handling support:
 //
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 //
 // all versions have a <dirent.h>:
 //
 #if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_DIRENT_H
 #endif
 //
 // all versions support __declspec:
 //
 #if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 //
 // ABI fixing headers:
 //
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
 #endif
 //
 // Disable Win32 support in ANSI mode:
 //
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+#  pragma defineonoption NDNBOOST_DISABLE_WIN32 -A
 //
 // MSVC compatibility mode does some nasty things:
 // TODO: look up if this doesn't apply to the whole 12xx range
 //
 #if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_VOID_RETURNS
 #endif
 
-#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
+#define NDNBOOST_COMPILER "CodeGear C++ version " NDNBOOST_STRINGIZE(__CODEGEARC__)
 
diff --git a/include/ndnboost/config/compiler/comeau.hpp b/include/ndnboost/config/compiler/comeau.hpp
index 09f608c..4238be9 100644
--- a/include/ndnboost/config/compiler/comeau.hpp
+++ b/include/ndnboost/config/compiler/comeau.hpp
@@ -19,14 +19,14 @@
 #  if defined(_MSC_VER) && _MSC_VER <= 1300
 #     if _MSC_VER > 100
          // only set this in non-strict mode:
-#        define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#        define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 #     endif
 #  endif
 
 // Void returns don't work when emulating VC 6 (Peter Dimov)
 // TODO: look up if this doesn't apply to the whole 12xx range
 #  if defined(_MSC_VER) && (_MSC_VER < 1300)
-#     define BOOST_NO_VOID_RETURNS
+#     define NDNBOOST_NO_VOID_RETURNS
 #  endif
 
 #endif  // version 4245
@@ -35,10 +35,10 @@
 // enable __int64 support in VC emulation mode
 //
 #  if defined(_MSC_VER) && (_MSC_VER >= 1200)
-#     define BOOST_HAS_MS_INT64
+#     define NDNBOOST_HAS_MS_INT64
 #  endif
 
-#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
+#define NDNBOOST_COMPILER "Comeau compiler version " NDNBOOST_STRINGIZE(__COMO_VERSION__)
 
 //
 // versions check:
@@ -49,7 +49,7 @@
 //
 // last known and checked version is 4245:
 #if (__COMO_VERSION__ > 4245)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/common_edg.hpp b/include/ndnboost/config/compiler/common_edg.hpp
index 4b5d2d2..25181ac 100644
--- a/include/ndnboost/config/compiler/common_edg.hpp
+++ b/include/ndnboost/config/compiler/common_edg.hpp
@@ -19,86 +19,86 @@
 #endif
 
 #if (__EDG_VERSION__ <= 238)
-#   define BOOST_NO_INTEGRAL_INT64_T
-#   define BOOST_NO_SFINAE
+#   define NDNBOOST_NO_INTEGRAL_INT64_T
+#   define NDNBOOST_NO_SFINAE
 #endif
 
 #if (__EDG_VERSION__ <= 240)
-#   define BOOST_NO_VOID_RETURNS
+#   define NDNBOOST_NO_VOID_RETURNS
 #endif
 
-#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-#   define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#if (__EDG_VERSION__ <= 241) && !defined(NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
+#   define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 #endif
 
-#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
-#   define BOOST_NO_TEMPLATE_TEMPLATES
+#if (__EDG_VERSION__ <= 244) && !defined(NDNBOOST_NO_TEMPLATE_TEMPLATES)
+#   define NDNBOOST_NO_TEMPLATE_TEMPLATES
 #endif 
 
-#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
-#   define BOOST_NO_IS_ABSTRACT
+#if (__EDG_VERSION__ < 300) && !defined(NDNBOOST_NO_IS_ABSTRACT)
+#   define NDNBOOST_NO_IS_ABSTRACT
 #endif 
 
-#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if (__EDG_VERSION__ <= 303) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#   define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif 
 
 // See also kai.hpp which checks a Kai-specific symbol for EH
-# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
+# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#     define NDNBOOST_NO_EXCEPTIONS
 # endif
 
 # if !defined(__NO_LONG_LONG)
-#     define BOOST_HAS_LONG_LONG
+#     define NDNBOOST_HAS_LONG_LONG
 # else
-#     define BOOST_NO_LONG_LONG
+#     define NDNBOOST_NO_LONG_LONG
 # endif
 
 //
 // C++0x features
 //
-//   See above for BOOST_NO_LONG_LONG
+//   See above for NDNBOOST_NO_LONG_LONG
 //
 #if (__EDG_VERSION__ < 310)
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if (__EDG_VERSION__ <= 310)
 // No support for initializer lists
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #endif
 #if (__EDG_VERSION__ < 400)
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #ifdef c_plusplus
 // EDG has "long long" in non-strict mode
 // However, some libraries have insufficient "long long" support
-// #define BOOST_HAS_LONG_LONG
+// #define NDNBOOST_HAS_LONG_LONG
 #endif
diff --git a/include/ndnboost/config/compiler/compaq_cxx.hpp b/include/ndnboost/config/compiler/compaq_cxx.hpp
index e0d5fe6..cf8b5e5 100644
--- a/include/ndnboost/config/compiler/compaq_cxx.hpp
+++ b/include/ndnboost/config/compiler/compaq_cxx.hpp
@@ -7,7 +7,7 @@
 
 //  Tru64 C++ compiler setup (now HP):
 
-#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
+#define NDNBOOST_COMPILER "HP Tru64 C++ " NDNBOOST_STRINGIZE(__DECCXX_VER)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
diff --git a/include/ndnboost/config/compiler/cray.hpp b/include/ndnboost/config/compiler/cray.hpp
index 43a5db9..ca86118 100644
--- a/include/ndnboost/config/compiler/cray.hpp
+++ b/include/ndnboost/config/compiler/cray.hpp
@@ -7,7 +7,7 @@
 
 //  Greenhills C compiler setup:
 
-#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
+#define NDNBOOST_COMPILER "Cray C version " NDNBOOST_STRINGIZE(_RELEASE)
 
 #if _RELEASE < 7
 #  error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
@@ -25,40 +25,40 @@
 //
 // Cray peculiarities, probably version 7 specific:
 //
-#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
-#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CHAR16_T
-//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
-//#define BOOST_HAS_FPCLASSIFY
+#undef NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#undef NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CHAR16_T
+//#define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#define NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY
+//#define NDNBOOST_HAS_FPCLASSIFY
 
-#define BOOST_SP_USE_PTHREADS 
-#define BOOST_AC_USE_PTHREADS 
+#define NDNBOOST_SP_USE_PTHREADS 
+#define NDNBOOST_AC_USE_PTHREADS 
 
diff --git a/include/ndnboost/config/compiler/digitalmars.hpp b/include/ndnboost/config/compiler/digitalmars.hpp
index 0206dc3..b1cb3b7 100644
--- a/include/ndnboost/config/compiler/digitalmars.hpp
+++ b/include/ndnboost/config/compiler/digitalmars.hpp
@@ -6,39 +6,39 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 //  Digital Mars C++ compiler setup:
-#define BOOST_COMPILER __DMC_VERSION_STRING__
+#define NDNBOOST_COMPILER __DMC_VERSION_STRING__
 
-#define BOOST_HAS_LONG_LONG
-#define BOOST_HAS_PRAGMA_ONCE
+#define NDNBOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_PRAGMA_ONCE
 
 #if (__DMC__ <= 0x833)
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TEMPLATE_TEMPLATES
-#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
-#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#define NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
+#define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 #endif
-#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#define BOOST_NO_OPERATORS_IN_NAMESPACE
-#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#define BOOST_NO_SFINAE
-#define BOOST_NO_USING_TEMPLATE
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if (__DMC__ <= 0x840) || !defined(NDNBOOST_STRICT_CONFIG)
+#define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
+#define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#define NDNBOOST_NO_SFINAE
+#define NDNBOOST_NO_USING_TEMPLATE
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif
 
 //
 // has macros:
 #if (__DMC__ >= 0x840)
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_WINTHREADS
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_WINTHREADS
 #endif
 
 #if (__DMC__ >= 0x847)
-#define BOOST_HAS_EXPM1
-#define BOOST_HAS_LOG1P
+#define NDNBOOST_HAS_EXPM1
+#define NDNBOOST_HAS_LOG1P
 #endif
 
 //
@@ -48,48 +48,48 @@
 #include <cstddef>
 #endif
 #if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
-#  define BOOST_NO_STDC_NAMESPACE
+#  define NDNBOOST_NO_STDC_NAMESPACE
 #endif
 
 
 // check for exception handling support:
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 //
 // C++0x features
 //
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 #if (__DMC__ < 0x812)
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #if __DMC__ < 0x800
@@ -98,7 +98,7 @@
 //
 // last known and checked version is ...:
 #if (__DMC__ > 0x848)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/gcc.hpp b/include/ndnboost/config/compiler/gcc.hpp
index b3d12ec..c2d5130 100644
--- a/include/ndnboost/config/compiler/gcc.hpp
+++ b/include/ndnboost/config/compiler/gcc.hpp
@@ -14,48 +14,48 @@
 //  GNU C++ compiler setup.
 
 //
-// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
+// Define NDNBOOST_GCC so we know this is "real" GCC and not some pretender:
 //
 #if !defined(__CUDACC__)
-#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#define NDNBOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif
 
 #if __GNUC__ < 3
 #   if __GNUC_MINOR__ == 91
        // egcs 1.1 won't parse shared_ptr.hpp without this:
-#      define BOOST_NO_AUTO_PTR
+#      define NDNBOOST_NO_AUTO_PTR
 #   endif
 #   if __GNUC_MINOR__ < 95
       //
       // Prior to gcc 2.95 member templates only partly
-      // work - define BOOST_MSVC6_MEMBER_TEMPLATES
+      // work - define NDNBOOST_MSVC6_MEMBER_TEMPLATES
       // instead since inline member templates mostly work.
       //
-#     define BOOST_NO_MEMBER_TEMPLATES
+#     define NDNBOOST_NO_MEMBER_TEMPLATES
 #     if __GNUC_MINOR__ >= 9
-#       define BOOST_MSVC6_MEMBER_TEMPLATES
+#       define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 #     endif
 #   endif
 
 #   if __GNUC_MINOR__ < 96
-#     define BOOST_NO_SFINAE
+#     define NDNBOOST_NO_SFINAE
 #   endif
 
 #   if __GNUC_MINOR__ <= 97
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define BOOST_NO_OPERATORS_IN_NAMESPACE
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #   endif
 
-#   define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#   define BOOST_NO_IS_ABSTRACT
-#   define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#   define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#   define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#   define NDNBOOST_NO_IS_ABSTRACT
+#   define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 // Variadic macros do not exist for gcc versions before 3.0
-#   define BOOST_NO_CXX11_VARIADIC_MACROS
+#   define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #elif __GNUC__ == 3
 #  if defined (__PATHSCALE__)
-#     define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
    //
    // gcc-3.x problems:
@@ -63,20 +63,20 @@
    // Bug specific to gcc 3.1 and 3.2:
    //
 #  if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-#     define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#     define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 #  endif
 #  if __GNUC_MINOR__ < 4
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if __GNUC__ < 4
 //
 // All problems to gcc-3.x and earlier here:
 //
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #  ifdef __OPEN64__
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
 #endif
 
@@ -89,11 +89,11 @@
 // reported by Michael Elizabeth Chastain in 2007,
 // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #endif
 
-#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
+#if !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+# define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 
@@ -103,19 +103,19 @@
 // later if no threading API is detected.
 //
 #if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
+# define NDNBOOST_HAS_THREADS
 #endif 
 
 //
 // gcc has "long long"
 //
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 //
 // gcc implements the named return value optimization since version 3.1
 //
 #if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
-#define BOOST_HAS_NRVO
+#define NDNBOOST_HAS_NRVO
 #endif
 
 //
@@ -126,17 +126,17 @@
      // All Win32 development environments, including 64-bit Windows and MinGW, define 
      // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
      // so does not define _WIN32 or its variants.
-#    define BOOST_HAS_DECLSPEC
-#    define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
-#    define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
+#    define NDNBOOST_HAS_DECLSPEC
+#    define NDNBOOST_SYMBOL_EXPORT __attribute__((dllexport))
+#    define NDNBOOST_SYMBOL_IMPORT __attribute__((dllimport))
 #  else
-#    define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#    define BOOST_SYMBOL_IMPORT
+#    define NDNBOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
+#    define NDNBOOST_SYMBOL_IMPORT
 #  endif
-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
 #else
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define BOOST_SYMBOL_EXPORT
+// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
+#  define NDNBOOST_SYMBOL_EXPORT
 #endif
 
 //
@@ -144,11 +144,11 @@
 //
 #if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
 #  ifndef __GXX_RTTI
-#     ifndef BOOST_NO_TYPEID
-#        define BOOST_NO_TYPEID
+#     ifndef NDNBOOST_NO_TYPEID
+#        define NDNBOOST_NO_TYPEID
 #     endif
-#     ifndef BOOST_NO_RTTI
-#        define BOOST_NO_RTTI
+#     ifndef NDNBOOST_NO_RTTI
+#        define NDNBOOST_NO_RTTI
 #     endif
 #  endif
 #endif
@@ -164,7 +164,7 @@
 // of the circumstances under which it's supported:
 //
 #if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
-#  define BOOST_HAS_INT128
+#  define NDNBOOST_HAS_INT128
 #endif
 
 // C++0x features in 4.3.n and later
@@ -173,91 +173,91 @@
 // C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
 // passed on the command line, which in turn defines
 // __GXX_EXPERIMENTAL_CXX0X__.
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
-#  define BOOST_HAS_VARIADIC_TMPL
+#  define NDNBOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_STATIC_ASSERT
+#  define NDNBOOST_HAS_VARIADIC_TMPL
 #else
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 
 // Variadic templates compiler: 
 //   http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
 #  if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
-#    define BOOST_HAS_VARIADIC_TMPL
+#    define NDNBOOST_HAS_VARIADIC_TMPL
 #  else
-#    define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#    define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #  endif
 #endif
 
 // C++0x features in 4.4.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #endif
 
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-#  define BOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_SFINAE_EXPR
 #endif
 
 // C++0x features in 4.5.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #endif
 
 // C++0x features in 4.5.1 and later
 //
 #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
+// scoped enums have a serious bug in 4.4.0, so define NDNBOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
 // See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
 
 // C++0x features in 4.6.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 // C++0x features in 4.7.n and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
 // C++0x features in 4.8.1 and later
 //
 #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
 #endif
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "GNU C++ version " __VERSION__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "GNU C++ version " __VERSION__
 #endif
 
 // ConceptGCC compiler:
 //   http://www.generic-programming.org/software/ConceptGCC/
 #ifdef __GXX_CONCEPTS__
-#  define BOOST_HAS_CONCEPTS
-#  define BOOST_COMPILER "ConceptGCC version " __VERSION__
+#  define NDNBOOST_HAS_CONCEPTS
+#  define NDNBOOST_COMPILER "ConceptGCC version " __VERSION__
 #endif
 
 // versions check:
@@ -268,7 +268,7 @@
 //
 // last known and checked version is 4.6 (Pre-release):
 #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 // we don't emit warnings here anymore since there are no defect macros defined for
diff --git a/include/ndnboost/config/compiler/gcc_xml.hpp b/include/ndnboost/config/compiler/gcc_xml.hpp
index 1af2fc1..17f9f78 100644
--- a/include/ndnboost/config/compiler/gcc_xml.hpp
+++ b/include/ndnboost/config/compiler/gcc_xml.hpp
@@ -8,7 +8,7 @@
 //  GCC-XML C++ compiler setup:
 
 #  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
-#     define BOOST_NO_IS_ABSTRACT
+#     define NDNBOOST_NO_IS_ABSTRACT
 #  endif
 
 //
@@ -17,45 +17,45 @@
 // later if no threading API is detected.
 //
 #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
+# define NDNBOOST_HAS_THREADS
 #endif 
 
 //
 // gcc has "long long"
 //
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_LONG_LONG
 
 // C++0x features:
 //
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_SCOPED_ENUMS  
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS  
+#  define NDNBOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
-#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
+#define NDNBOOST_COMPILER "GCC-XML C++ version " __GCCXML__
 
 
diff --git a/include/ndnboost/config/compiler/greenhills.hpp b/include/ndnboost/config/compiler/greenhills.hpp
index 8d2da94..d16897d 100644
--- a/include/ndnboost/config/compiler/greenhills.hpp
+++ b/include/ndnboost/config/compiler/greenhills.hpp
@@ -7,7 +7,7 @@
 
 //  Greenhills C++ compiler setup:
 
-#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
+#define NDNBOOST_COMPILER "Greenhills C++ version " NDNBOOST_STRINGIZE(__ghs)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
@@ -20,7 +20,7 @@
 //
 // last known and checked version is 0:
 #if (__ghs > 0)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/hp_acc.hpp b/include/ndnboost/config/compiler/hp_acc.hpp
index f2c917a..d8438e8 100644
--- a/include/ndnboost/config/compiler/hp_acc.hpp
+++ b/include/ndnboost/config/compiler/hp_acc.hpp
@@ -17,42 +17,42 @@
 #endif
 
 #if (__HP_aCC <= 33100)
-#    define BOOST_NO_INTEGRAL_INT64_T
-#    define BOOST_NO_OPERATORS_IN_NAMESPACE
+#    define NDNBOOST_NO_INTEGRAL_INT64_T
+#    define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
 #  if !defined(_NAMESPACE_STD)
-#     define BOOST_NO_STD_LOCALE
-#     define BOOST_NO_STRINGSTREAM
+#     define NDNBOOST_NO_STD_LOCALE
+#     define NDNBOOST_NO_STRINGSTREAM
 #  endif
 #endif
 
 #if (__HP_aCC <= 33300)
 // member templates are sufficiently broken that we disable them for now
-#    define BOOST_NO_MEMBER_TEMPLATES
-#    define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#    define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#    define NDNBOOST_NO_MEMBER_TEMPLATES
+#    define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#    define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 #endif
 
 #if (__HP_aCC <= 38000)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 #if (__HP_aCC > 50000) && (__HP_aCC < 60000)
-#    define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#    define BOOST_NO_TEMPLATE_TEMPLATES
-#    define BOOST_NO_SWPRINTF
-#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#    define BOOST_NO_IS_ABSTRACT
-#    define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#    define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#    define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#    define NDNBOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#    define NDNBOOST_NO_IS_ABSTRACT
+#    define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #endif 
 
 // optional features rather than defects:
 #if (__HP_aCC >= 33900)
-#    define BOOST_HAS_LONG_LONG
-#    define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#    define NDNBOOST_HAS_LONG_LONG
+#    define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 #endif
 
 #if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
-#    define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#    define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #endif
 
 // This macro should not be defined when compiling in strict ansi
@@ -61,10 +61,10 @@
 // of aCC6 compiler will provide predefined macros reflecting the
 // compilation options, including the standard mode.
 #if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
-#    define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#    define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
-#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
+#define NDNBOOST_COMPILER "HP aCC version " NDNBOOST_STRINGIZE(__HP_aCC)
 
 //
 // versions check:
@@ -88,37 +88,37 @@
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if !defined(__EDG__)
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 /* 
   See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
@@ -126,7 +126,7 @@
 */
 
 #if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
-  #define BOOST_NO_CXX11_VARIADIC_MACROS
+  #define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #endif
@@ -135,7 +135,7 @@
 // last known and checked version for HP-UX/ia64 is 61300
 // last known and checked version for PA-RISC is 38000
 #if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/intel.hpp b/include/ndnboost/config/compiler/intel.hpp
index ea27b8d..9216831 100644
--- a/include/ndnboost/config/compiler/intel.hpp
+++ b/include/ndnboost/config/compiler/intel.hpp
@@ -17,42 +17,42 @@
 #include "ndnboost/config/compiler/common_edg.hpp"
 
 #if defined(__INTEL_COMPILER)
-#  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
+#  define NDNBOOST_INTEL_CXX_VERSION __INTEL_COMPILER
 #elif defined(__ICL)
-#  define BOOST_INTEL_CXX_VERSION __ICL
+#  define NDNBOOST_INTEL_CXX_VERSION __ICL
 #elif defined(__ICC)
-#  define BOOST_INTEL_CXX_VERSION __ICC
+#  define NDNBOOST_INTEL_CXX_VERSION __ICC
 #elif defined(__ECC)
-#  define BOOST_INTEL_CXX_VERSION __ECC
+#  define NDNBOOST_INTEL_CXX_VERSION __ECC
 #endif
 
 // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
-#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
-#  define BOOST_INTEL_STDCXX0X
+#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (NDNBOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
+#  define NDNBOOST_INTEL_STDCXX0X
 #endif
 #if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#  define BOOST_INTEL_STDCXX0X
+#  define NDNBOOST_INTEL_STDCXX0X
 #endif
 
-#ifdef BOOST_INTEL_STDCXX0X
-#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
+#ifdef NDNBOOST_INTEL_STDCXX0X
+#define NDNBOOST_COMPILER "Intel C++ C++0x mode version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
 #else
-#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
+#define NDNBOOST_COMPILER "Intel C++ version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
 #endif
-#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
+#define NDNBOOST_INTEL NDNBOOST_INTEL_CXX_VERSION
 
 #if defined(_WIN32) || defined(_WIN64)
-#  define BOOST_INTEL_WIN BOOST_INTEL
+#  define NDNBOOST_INTEL_WIN NDNBOOST_INTEL
 #else
-#  define BOOST_INTEL_LINUX BOOST_INTEL
+#  define NDNBOOST_INTEL_LINUX NDNBOOST_INTEL
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
-#  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  define BOOST_NO_TEMPLATE_TEMPLATES
+#if (NDNBOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
+#  define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 600)
+#if (NDNBOOST_INTEL_CXX_VERSION <= 600)
 
 #  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
 
@@ -64,28 +64,28 @@
 // details as they apply to particular versions of the compiler. When the
 // compiler does not predefine a macro indicating if an option has been set,
 // this config file simply assumes the option has been set.
-// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
+// Thus NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
 // the compiler option is not enabled.
 
-#     define BOOST_NO_SWPRINTF
+#     define NDNBOOST_NO_SWPRINTF
 #  endif
 
 // Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
 
 #  if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#     define BOOST_NO_VOID_RETURNS
-#     define BOOST_NO_INTEGRAL_INT64_T
+#     define NDNBOOST_NO_VOID_RETURNS
+#     define NDNBOOST_NO_INTEGRAL_INT64_T
 #  endif
 
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#if (NDNBOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 #endif
 
 // See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
-#if BOOST_INTEL_CXX_VERSION < 600
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#if NDNBOOST_INTEL_CXX_VERSION < 600
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #else
 // We should test the macro _WCHAR_T_DEFINED to check if the compiler
 // supports wchar_t natively. *BUT* there is a problem here: the standard
@@ -96,79 +96,79 @@
 // Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
 // is used instead.
 #  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
-#    define BOOST_NO_INTRINSIC_WCHAR_T
+#    define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #  endif
 #endif
 
-#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#if defined(__GNUC__) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
 //
 // Figure out when Intel is emulating this gcc bug
 // (All Intel versions prior to 9.0.26, and versions
 // later than that if they are set up to emulate gcc 3.2
 // or earlier):
 //
-#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
-#     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (NDNBOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
+#     define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #  endif
 #endif
-#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
+#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (NDNBOOST_INTEL_CXX_VERSION <= 1200)
 // GCC or VC emulation:
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 //
-// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
+// Verify that we have actually got NDNBOOST_NO_INTRINSIC_WCHAR_T
 // set correctly, if we don't do this now, we will get errors later
 // in type_traits code among other things, getting this correct
 // for the Intel compiler is actually remarkably fragile and tricky:
 //
 #ifdef __cplusplus
-#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
+#if defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
 #include <cwchar>
 template< typename T > struct assert_no_intrinsic_wchar_t;
 template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
-// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
+// if you see an error here then you need to unset NDNBOOST_NO_INTRINSIC_WCHAR_T
 // where it is defined above:
 typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
 #else
 template< typename T > struct assert_intrinsic_wchar_t;
 template<> struct assert_intrinsic_wchar_t<wchar_t> {};
-// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
+// if you see an error here then define NDNBOOST_NO_INTRINSIC_WCHAR_T on the command line:
 template<> struct assert_intrinsic_wchar_t<unsigned short> {};
 #endif
 #endif
 
 #if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
 #  if _MSC_VER >= 1200
-#     define BOOST_HAS_MS_INT64
+#     define NDNBOOST_HAS_MS_INT64
 #  endif
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #elif defined(_WIN32)
-#  define BOOST_DISABLE_WIN32
+#  define NDNBOOST_DISABLE_WIN32
 #endif
 
 // I checked version 6.0 build 020312Z, it implements the NRVO.
 // Correct this as you find out which version of the compiler
 // implemented the NRVO first.  (Daniel Frey)
-#if (BOOST_INTEL_CXX_VERSION >= 600)
-#  define BOOST_HAS_NRVO
+#if (NDNBOOST_INTEL_CXX_VERSION >= 600)
+#  define NDNBOOST_HAS_NRVO
 #endif
 
 //
 // versions check:
 // we don't support Intel prior to version 5.0:
-#if BOOST_INTEL_CXX_VERSION < 500
+#if NDNBOOST_INTEL_CXX_VERSION < 500
 #  error "Compiler not supported or configured - please reconfigure"
 #endif
 
 // Intel on MacOS requires
 #if defined(__APPLE__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 // Intel on Altix Itanium
 #if defined(__itanium__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 #endif
 
 //
@@ -182,7 +182,7 @@
 // Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
 #if defined(__INTEL_COMPILER)
 #  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
-#    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#    define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #  endif
 #endif
 
@@ -190,76 +190,76 @@
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if defined(__GNUC__) && (__GNUC__ >= 4)
-#  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
+#  define NDNBOOST_SYMBOL_IMPORT
+#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
 #endif
 //
 // C++0x features
 //     - ICC added static_assert in 11.0 (first version with C++0x support)
 //
-#if defined(BOOST_INTEL_STDCXX0X)
-#  undef  BOOST_NO_CXX11_STATIC_ASSERT
+#if defined(NDNBOOST_INTEL_STDCXX0X)
+#  undef  NDNBOOST_NO_CXX11_STATIC_ASSERT
 //
 // These pass our test cases, but aren't officially supported according to:
 // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 //
-//#  undef  BOOST_NO_CXX11_LAMBDAS
-//#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-//#  undef  BOOST_NO_CXX11_DECLTYPE
-//#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-//#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+//#  undef  NDNBOOST_NO_CXX11_LAMBDAS
+//#  undef  NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+//#  undef  NDNBOOST_NO_CXX11_DECLTYPE
+//#  undef  NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+//#  undef  NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
-//#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS  // doesn't really work!!
-#  undef  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_LAMBDAS
-#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  undef  BOOST_NO_CXX11_DECLTYPE
-#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#if defined(NDNBOOST_INTEL_STDCXX0X) && (NDNBOOST_INTEL_CXX_VERSION >= 1200)
+//#  undef  NDNBOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
+//#  undef  NDNBOOST_NO_CXX11_SCOPED_ENUMS  // doesn't really work!!
+#  undef  NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  undef  NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  undef  NDNBOOST_NO_CXX11_LAMBDAS
+#  undef  NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  undef  NDNBOOST_NO_CXX11_DECLTYPE
+#  undef  NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  undef  NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 
 // icl Version 12.1.0.233 Build 20110811 and possibly some other builds
 // had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed. 
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
-#  undef  BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  undef  BOOST_NO_CXX11_NULLPTR
-#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES
-#  undef  BOOST_NO_SFINAE_EXPR
-#  undef  BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  undef  BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#if defined(NDNBOOST_INTEL_STDCXX0X) && (NDNBOOST_INTEL_CXX_VERSION > 1200)
+#  undef  NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  undef  NDNBOOST_NO_CXX11_NULLPTR
+#  undef  NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  undef  NDNBOOST_NO_SFINAE_EXPR
+#  undef  NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  undef  NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 
 // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 // continues to list scoped enum support as "Partial" 
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS 
+//#  undef  NDNBOOST_NO_CXX11_SCOPED_ENUMS 
 #endif
 
 #if defined(_MSC_VER) && (_MSC_VER <= 1700)
 //
 // Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
 //
-#  define  BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define  BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define  BOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define  NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define  NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define  NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define  NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define  NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION < 1200)
+#if (NDNBOOST_INTEL_CXX_VERSION < 1200)
 //
 // fenv.h appears not to work with Intel prior to 12.0:
 //
-#  define BOOST_NO_FENV_H
+#  define NDNBOOST_NO_FENV_H
 #endif
 
 //
 // last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 1200)
-#  if defined(BOOST_ASSERT_CONFIG)
+#if (NDNBOOST_INTEL_CXX_VERSION > 1200)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  elif defined(_MSC_VER)
 //
diff --git a/include/ndnboost/config/compiler/kai.hpp b/include/ndnboost/config/compiler/kai.hpp
index c839638..38320f5 100644
--- a/include/ndnboost/config/compiler/kai.hpp
+++ b/include/ndnboost/config/compiler/kai.hpp
@@ -11,20 +11,20 @@
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
-#   if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
+#   if (__KCC_VERSION <= 4001) || !defined(NDNBOOST_STRICT_CONFIG)
       // at least on Sun, the contents of <cwchar> is not in namespace std
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
 #   endif
 
 // see also common_edg.hpp which needs a special check for __KCC
-# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
+# if !defined(_EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#     define NDNBOOST_NO_EXCEPTIONS
 # endif
 
 //
 // last known and checked version is 4001:
 #if (__KCC_VERSION > 4001)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/metrowerks.hpp b/include/ndnboost/config/compiler/metrowerks.hpp
index 4ca8af8..a5161cd 100644
--- a/include/ndnboost/config/compiler/metrowerks.hpp
+++ b/include/ndnboost/config/compiler/metrowerks.hpp
@@ -14,114 +14,114 @@
 
 // locale support is disabled when linking with the dynamic runtime
 #   ifdef _MSL_NO_LOCALE
-#     define BOOST_NO_STD_LOCALE
+#     define NDNBOOST_NO_STD_LOCALE
 #   endif 
 
 #   if __MWERKS__ <= 0x2301  // 5.3
-#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#     define BOOST_NO_POINTER_TO_MEMBER_CONST
-#     define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#     define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#     define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#     define NDNBOOST_NO_POINTER_TO_MEMBER_CONST
+#     define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #   endif
 
 #   if __MWERKS__ <= 0x2401  // 6.2
-//#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+//#     define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #   endif
 
 #   if(__MWERKS__ <= 0x2407)  // 7.x
-#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#     define BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#     define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#     define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
 #   endif
 
 #   if(__MWERKS__ <= 0x3003)  // 8.x
-#     define BOOST_NO_SFINAE
+#     define NDNBOOST_NO_SFINAE
 #    endif
 
-// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
+// the "|| !defined(NDNBOOST_STRICT_CONFIG)" part should apply to the last
 // tested version *only*:
-#   if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define BOOST_NO_IS_ABSTRACT
+#   if(__MWERKS__ <= 0x3207) || !defined(NDNBOOST_STRICT_CONFIG) // 9.6
+#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#     define NDNBOOST_NO_IS_ABSTRACT
 #    endif
 
 #if !__option(wchar_type)
-#   define BOOST_NO_INTRINSIC_WCHAR_T
+#   define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
-#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#   define BOOST_NO_EXCEPTIONS
+#if !__option(exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#   define NDNBOOST_NO_EXCEPTIONS
 #endif
 
 #if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
 #   if __MWERKS__ == 0x3000
-#     define BOOST_COMPILER_VERSION 8.0
+#     define NDNBOOST_COMPILER_VERSION 8.0
 #   elif __MWERKS__ == 0x3001
-#     define BOOST_COMPILER_VERSION 8.1
+#     define NDNBOOST_COMPILER_VERSION 8.1
 #   elif __MWERKS__ == 0x3002
-#     define BOOST_COMPILER_VERSION 8.2
+#     define NDNBOOST_COMPILER_VERSION 8.2
 #   elif __MWERKS__ == 0x3003
-#     define BOOST_COMPILER_VERSION 8.3
+#     define NDNBOOST_COMPILER_VERSION 8.3
 #   elif __MWERKS__ == 0x3200
-#     define BOOST_COMPILER_VERSION 9.0
+#     define NDNBOOST_COMPILER_VERSION 9.0
 #   elif __MWERKS__ == 0x3201
-#     define BOOST_COMPILER_VERSION 9.1
+#     define NDNBOOST_COMPILER_VERSION 9.1
 #   elif __MWERKS__ == 0x3202
-#     define BOOST_COMPILER_VERSION 9.2
+#     define NDNBOOST_COMPILER_VERSION 9.2
 #   elif __MWERKS__ == 0x3204
-#     define BOOST_COMPILER_VERSION 9.3
+#     define NDNBOOST_COMPILER_VERSION 9.3
 #   elif __MWERKS__ == 0x3205
-#     define BOOST_COMPILER_VERSION 9.4
+#     define NDNBOOST_COMPILER_VERSION 9.4
 #   elif __MWERKS__ == 0x3206
-#     define BOOST_COMPILER_VERSION 9.5
+#     define NDNBOOST_COMPILER_VERSION 9.5
 #   elif __MWERKS__ == 0x3207
-#     define BOOST_COMPILER_VERSION 9.6
+#     define NDNBOOST_COMPILER_VERSION 9.6
 #   else
-#     define BOOST_COMPILER_VERSION __MWERKS__
+#     define NDNBOOST_COMPILER_VERSION __MWERKS__
 #   endif
 #else
-#  define BOOST_COMPILER_VERSION __MWERKS__
+#  define NDNBOOST_COMPILER_VERSION __MWERKS__
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if __MWERKS__ > 0x3206 && __option(rvalue_refs)
-#  define BOOST_HAS_RVALUE_REFS
+#  define NDNBOOST_HAS_RVALUE_REFS
 #else
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES              
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES              
 #endif
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
-#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#define NDNBOOST_COMPILER "Metrowerks CodeWarrior C++ version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 
 //
 // versions check:
@@ -132,7 +132,7 @@
 //
 // last known and checked version:
 #if (__MWERKS__ > 0x3205)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/mpw.hpp b/include/ndnboost/config/compiler/mpw.hpp
index 7ef38ef..83aa275 100644
--- a/include/ndnboost/config/compiler/mpw.hpp
+++ b/include/ndnboost/config/compiler/mpw.hpp
@@ -9,9 +9,9 @@
 //  MPW C++ compilers setup:
 
 #   if    defined(__SC__)
-#     define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
+#     define NDNBOOST_COMPILER "MPW SCpp version " NDNBOOST_STRINGIZE(__SC__)
 #   elif defined(__MRC__)
-#     define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
+#     define NDNBOOST_COMPILER "MPW MrCpp version " NDNBOOST_STRINGIZE(__MRC__)
 #   else
 #     error "Using MPW compiler configuration by mistake.  Please update."
 #   endif
@@ -19,56 +19,56 @@
 //
 // MPW 8.90:
 //
-#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define BOOST_NO_USING_TEMPLATE
+#if (MPW_CPLUS <= 0x890) || !defined(NDNBOOST_STRICT_CONFIG)
+#  define NDNBOOST_NO_CV_SPECIALIZATIONS
+#  define NDNBOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  define NDNBOOST_NO_USING_TEMPLATE
 
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 
-#  define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
+#  define NDNBOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
 
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // versions check:
@@ -79,7 +79,7 @@
 //
 // last known and checked version is 0x890:
 #if (MPW_CPLUS > 0x890)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/nvcc.hpp b/include/ndnboost/config/compiler/nvcc.hpp
index 5b9bb39..c3507cf 100644
--- a/include/ndnboost/config/compiler/nvcc.hpp
+++ b/include/ndnboost/config/compiler/nvcc.hpp
@@ -7,13 +7,13 @@
 
 //  NVIDIA CUDA C++ compiler setup
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "NVIDIA CUDA C++ Compiler"
 #endif
 
 // NVIDIA Specific support
-// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
-#define BOOST_GPU_ENABLED __host__ __device__
+// NDNBOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
+#define NDNBOOST_GPU_ENABLED __host__ __device__
 
 // Boost support macro for NVCC 
 // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
diff --git a/include/ndnboost/config/compiler/pathscale.hpp b/include/ndnboost/config/compiler/pathscale.hpp
index 07d1460..9ddaeb8 100644
--- a/include/ndnboost/config/compiler/pathscale.hpp
+++ b/include/ndnboost/config/compiler/pathscale.hpp
@@ -8,74 +8,74 @@
 
 // PathScale EKOPath C++ Compiler
 
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
+#ifndef NDNBOOST_COMPILER
+#  define NDNBOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
 #endif
 
 #if __PATHCC__ >= 4
-#  define BOOST_MSVC6_MEMBER_TEMPLATES
-#  define BOOST_HAS_UNISTD_H
-#  define BOOST_HAS_STDINT_H
-#  define BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_THREADS
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_PTHREAD_YIELD
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  define BOOST_HAS_NRVO
-#  define BOOST_HAS_NL_TYPES_H
-#  define BOOST_HAS_NANOSLEEP
-#  define BOOST_HAS_LONG_LONG
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_CLOCK_GETTIME
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#  define NDNBOOST_MSVC6_MEMBER_TEMPLATES
+#  define NDNBOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_THREADS
+#  define NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_PTHREAD_YIELD
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
+#  define NDNBOOST_HAS_NRVO
+#  define NDNBOOST_HAS_NL_TYPES_H
+#  define NDNBOOST_HAS_NANOSLEEP
+#  define NDNBOOST_HAS_LONG_LONG
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_CLOCK_GETTIME
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_SFINAE_EXPR
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#  define NDNBOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #endif
 
diff --git a/include/ndnboost/config/compiler/pgi.hpp b/include/ndnboost/config/compiler/pgi.hpp
index 64c0d75..07a92de 100644
--- a/include/ndnboost/config/compiler/pgi.hpp
+++ b/include/ndnboost/config/compiler/pgi.hpp
@@ -7,8 +7,8 @@
 
 //  PGI C++ compiler setup:
 
-#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
-#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#define NDNBOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
+#define NDNBOOST_COMPILER "PGI compiler version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 
 //
 // Threading support:
@@ -19,41 +19,41 @@
 #if __PGIC__ >= 11
 
 // options requested by configure --enable-test
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_PTHREAD_YIELD
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_HAS_LONG_LONG
 
 // options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_STDC_NAMESPACE
+#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
+#undef NDNBOOST_DEDUCED_TYPENAME
 
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
 
 #elif __PGIC__ >= 10
 
 // options requested by configure --enable-test
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_NRVO
+#define NDNBOOST_HAS_LONG_LONG
 
 // options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_STDC_NAMESPACE
+#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
+#undef NDNBOOST_DEDUCED_TYPENAME
 
 #elif __PGIC__ >= 7
 
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_SWPRINTF
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
 
 #else
 
@@ -63,55 +63,55 @@
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NUMERIC_LIMITS
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_SWPRINTF
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 
-#define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#define BOOST_NO_CXX11_HDR_TYPEINDEX
-#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#define BOOST_NO_CXX11_HDR_TUPLE
-#define BOOST_NO_CXX11_HDR_THREAD
-#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#define BOOST_NO_CXX11_HDR_REGEX
-#define BOOST_NO_CXX11_HDR_RATIO
-#define BOOST_NO_CXX11_HDR_RANDOM
-#define BOOST_NO_CXX11_HDR_MUTEX
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_HDR_FUTURE
-#define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#define BOOST_NO_CXX11_HDR_CODECVT
-#define BOOST_NO_CXX11_HDR_CHRONO
-#define BOOST_NO_CXX11_HDR_ARRAY
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#define NDNBOOST_NO_CXX11_HDR_TUPLE
+#define NDNBOOST_NO_CXX11_HDR_THREAD
+#define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#define NDNBOOST_NO_CXX11_HDR_REGEX
+#define NDNBOOST_NO_CXX11_HDR_RATIO
+#define NDNBOOST_NO_CXX11_HDR_RANDOM
+#define NDNBOOST_NO_CXX11_HDR_MUTEX
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_HDR_FUTURE
+#define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#define NDNBOOST_NO_CXX11_HDR_CODECVT
+#define NDNBOOST_NO_CXX11_HDR_CHRONO
+#define NDNBOOST_NO_CXX11_HDR_ARRAY
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // version check:
diff --git a/include/ndnboost/config/compiler/sgi_mipspro.hpp b/include/ndnboost/config/compiler/sgi_mipspro.hpp
index 048ea44..1ebe245 100644
--- a/include/ndnboost/config/compiler/sgi_mipspro.hpp
+++ b/include/ndnboost/config/compiler/sgi_mipspro.hpp
@@ -7,7 +7,7 @@
 
 //  SGI C++ compiler setup:
 
-#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
+#define NDNBOOST_COMPILER "SGI Irix compiler version " NDNBOOST_STRINGIZE(_COMPILER_VERSION)
 
 #include "ndnboost/config/compiler/common_edg.hpp"
 
@@ -16,11 +16,11 @@
 // Turn this on unconditionally here, it will get turned off again later
 // if no threading API is detected.
 //
-#define BOOST_HAS_THREADS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
 
-#undef BOOST_NO_SWPRINTF
-#undef BOOST_DEDUCED_TYPENAME
+#undef NDNBOOST_NO_SWPRINTF
+#undef NDNBOOST_DEDUCED_TYPENAME
 
 //
 // version check:
diff --git a/include/ndnboost/config/compiler/sunpro_cc.hpp b/include/ndnboost/config/compiler/sunpro_cc.hpp
index 88421ee..6b344e1 100644
--- a/include/ndnboost/config/compiler/sunpro_cc.hpp
+++ b/include/ndnboost/config/compiler/sunpro_cc.hpp
@@ -12,8 +12,8 @@
 //  Sun C++ compiler setup:
 
 #    if __SUNPRO_CC <= 0x500
-#      define BOOST_NO_MEMBER_TEMPLATES
-#      define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#      define NDNBOOST_NO_MEMBER_TEMPLATES
+#      define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #    endif
 
 #    if (__SUNPRO_CC <= 0x520)
@@ -24,14 +24,14 @@
        // inline initialization it often gets the value
        // wrong, especially where the value is computed
        // from other constants (J Maddock 6th May 2001)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 
        // Although sunpro 5.2 supports the syntax for
        // partial specialization, it often seems to
        // bind to the wrong specialization.  Better
        // to disable it until suppport becomes more stable
        // (J Maddock 6th May 2001).
-#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#      define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 #    endif
 
 #    if (__SUNPRO_CC <= 0x530) 
@@ -41,7 +41,7 @@
        //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
        //         while processing ../test.cpp at line 0.
        // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
 
        // SunPro 5.3 has better support for partial specialization,
        // but breaks when compiling std::less<shared_ptr<T> >
@@ -51,22 +51,22 @@
        // Heintzelman; partial specialization re-enabled
        // (Peter Dimov 17 Jan 2002)
 
-//#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+//#      define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
        // integral constant expressions with 64 bit numbers fail
-#      define BOOST_NO_INTEGRAL_INT64_T
+#      define NDNBOOST_NO_INTEGRAL_INT64_T
 #    endif
 
 #    if (__SUNPRO_CC < 0x570) 
-#      define BOOST_NO_TEMPLATE_TEMPLATES
+#      define NDNBOOST_NO_TEMPLATE_TEMPLATES
        // see http://lists.boost.org/MailArchives/boost/msg47184.php
        // and http://lists.boost.org/MailArchives/boost/msg47220.php
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#      define BOOST_NO_SFINAE
-#      define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#      define NDNBOOST_NO_SFINAE
+#      define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 #    endif
 #    if (__SUNPRO_CC <= 0x580) 
-#      define BOOST_NO_IS_ABSTRACT
+#      define NDNBOOST_NO_IS_ABSTRACT
 #    endif
 
 #    if (__SUNPRO_CC <= 0x5100)
@@ -74,16 +74,16 @@
        // some user defined types, as was reported in April 2010
        // (CR 6947016), and confirmed by Steve Clamage.
        // (Niels Dekker, LKEB, May 2010).
-#      define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#      define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #    endif
 
 //
 // Dynamic shared object (DSO) and dynamic-link library (DLL) support
 //
 #if __SUNPRO_CC > 0x500
-#  define BOOST_SYMBOL_EXPORT __global
-#  define BOOST_SYMBOL_IMPORT __global
-#  define BOOST_SYMBOL_VISIBLE __global
+#  define NDNBOOST_SYMBOL_EXPORT __global
+#  define NDNBOOST_SYMBOL_IMPORT __global
+#  define NDNBOOST_SYMBOL_VISIBLE __global
 #endif
 
 
@@ -91,49 +91,49 @@
 //
 // Issues that effect all known versions:
 //
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_ADL_BARRIER
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_ADL_BARRIER
 
 //
 // C++0x features
 //
-#  define BOOST_HAS_LONG_LONG
+#  define NDNBOOST_HAS_LONG_LONG
 
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#define NDNBOOST_NO_CXX11_SCOPED_ENUMS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // Version
 //
 
-#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
+#define NDNBOOST_COMPILER "Sun compiler version " NDNBOOST_STRINGIZE(__SUNPRO_CC)
 
 //
 // versions check:
@@ -144,7 +144,7 @@
 //
 // last known and checked version is 0x590:
 #if (__SUNPRO_CC > 0x590)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
diff --git a/include/ndnboost/config/compiler/vacpp.hpp b/include/ndnboost/config/compiler/vacpp.hpp
index 47b9903..a667657 100644
--- a/include/ndnboost/config/compiler/vacpp.hpp
+++ b/include/ndnboost/config/compiler/vacpp.hpp
@@ -12,21 +12,21 @@
 //  Visual Age (IBM) C++ compiler setup:
 
 #if __IBMCPP__ <= 501
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #endif
 
 #if (__IBMCPP__ <= 502) 
 // Actually the compiler supports inclass member initialization but it
 // requires a definition for the class member and it doesn't recognize
 // it as an integral constant expression when used as a template argument.
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
 #endif
 
-#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#if (__IBMCPP__ <= 600) || !defined(NDNBOOST_STRICT_CONFIG)
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 #endif
 
 #if (__IBMCPP__ <= 1110)
@@ -34,17 +34,17 @@
 // a temporary object T(), when T is a non-POD aggregate class type. 
 // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it 
 // high priority. -- Niels Dekker (LKEB), May 2010.
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #endif
 
 //
 // On AIX thread support seems to be indicated by _THREAD_SAFE:
 //
 #ifdef _THREAD_SAFE
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
-#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
+#define NDNBOOST_COMPILER "IBM Visual Age version " NDNBOOST_STRINGIZE(__IBMCPP__)
 
 //
 // versions check:
@@ -55,76 +55,76 @@
 //
 // last known and checked version is 1210:
 #if (__IBMCPP__ > 1210)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  endif
 #endif
 
 // Some versions of the compiler have issues with default arguments on partial specializations
 #if __IBMCPP__ <= 1010
-#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#define NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 #endif
 
 //
 // C++0x features
 //
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
+//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
 //
 #if ! __IBMCPP_AUTO_TYPEDEDUCTION
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 #endif
 #if ! __IBMCPP_UTF_LITERAL__
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
+#  define NDNBOOST_NO_CXX11_CHAR16_T
+#  define NDNBOOST_NO_CXX11_CHAR32_T
 #endif
 #if ! __IBMCPP_CONSTEXPR
-#  define BOOST_NO_CXX11_CONSTEXPR
+#  define NDNBOOST_NO_CXX11_CONSTEXPR
 #endif
 #if ! __IBMCPP_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #else
-#  define BOOST_HAS_DECLTYPE
+#  define NDNBOOST_HAS_DECLTYPE
 #endif
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
 #if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 #endif
 #if ! __IBMCPP_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 #endif
 #if ! __IBMCPP_VARIADIC_TEMPLATES
 // not enabled separately at this time
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#define NDNBOOST_NO_CXX11_LAMBDAS
+#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_NULLPTR
+#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#define NDNBOOST_NO_CXX11_RAW_LITERALS
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 #if ! __IBMCPP_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
 #endif
 #if ! __IBMCPP_SCOPED_ENUM
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #if ! __IBMCPP_STATIC_ASSERT
-#  define BOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
 #endif
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
 #if ! __IBMCPP_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
 #endif
 #if ! __C99_MACRO_WITH_VA_ARGS
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 
diff --git a/include/ndnboost/config/compiler/visualc.hpp b/include/ndnboost/config/compiler/visualc.hpp
index a7d3025..1ba9d16 100644
--- a/include/ndnboost/config/compiler/visualc.hpp
+++ b/include/ndnboost/config/compiler/visualc.hpp
@@ -20,15 +20,15 @@
 //  No other comparisons (==, >, or <=) are safe.
 //
 
-#define BOOST_MSVC _MSC_VER
+#define NDNBOOST_MSVC _MSC_VER
 
 //
-// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
+// Helper macro NDNBOOST_MSVC_FULL_VER for use in Boost code:
 //
 #if _MSC_FULL_VER > 100000000
-#  define BOOST_MSVC_FULL_VER _MSC_FULL_VER
+#  define NDNBOOST_MSVC_FULL_VER _MSC_FULL_VER
 #else
-#  define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
+#  define NDNBOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
 #endif
 
 // Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
@@ -43,53 +43,53 @@
 
 #if _MSC_VER < 1300  // 1200 == VC++ 6.0, 1200-1202 == eVC++4
 #  pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
-#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define BOOST_NO_VOID_RETURNS
-#  define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#  define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  define NDNBOOST_NO_VOID_RETURNS
+#  define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 
 #  if _MSC_VER == 1202
-#    define BOOST_NO_STD_TYPEINFO
+#    define NDNBOOST_NO_STD_TYPEINFO
 #  endif
 
 #endif
 
 /// Visual Studio has no fenv.h
-#define BOOST_NO_FENV_H
+#define NDNBOOST_NO_FENV_H
 
 #if (_MSC_VER < 1310)  // 130X == VC++ 7.0
 
-#  if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za
-#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#  if !defined(_MSC_EXTENSIONS) && !defined(NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za
+#    define NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 #  endif
 
-#  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_DEDUCED_TYPENAME
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#  define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
+#  define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define NDNBOOST_NO_INTEGRAL_INT64_T
+#  define NDNBOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 
 //    VC++ 6/7 has member templates but they have numerous problems including
 //    cases of silent failure, so for safety we define:
-#  define BOOST_NO_MEMBER_TEMPLATES
+#  define NDNBOOST_NO_MEMBER_TEMPLATES
 //    For VC++ experts wishing to attempt workarounds, we define:
-#  define BOOST_MSVC6_MEMBER_TEMPLATES
+#  define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_TEMPLATE_TEMPLATES
-#  define BOOST_NO_SFINAE
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#  define BOOST_NO_IS_ABSTRACT
-#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#  define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
+#  define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#  define NDNBOOST_NO_USING_TEMPLATE
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
+#  define NDNBOOST_NO_SFINAE
+#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#  define NDNBOOST_NO_IS_ABSTRACT
+#  define NDNBOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
 // TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
 #  if (_MSC_VER >= 1300)
-#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#     define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 #  endif
 
 #endif
@@ -97,25 +97,25 @@
 #if _MSC_VER < 1400 
 // although a conforming signature for swprint exists in VC7.1
 // it appears not to actually work:
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 // Our extern template tests also fail for this compiler:
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
+#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
 // Variadic macros do not exist for VC7.1 and lower
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
+#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 #endif
 
 #if defined(UNDER_CE)
 // Windows CE does not have a conforming signature for swprintf
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 #if _MSC_VER < 1500  // 140X == VC++ 8.0
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #endif
 
 #if _MSC_VER < 1600  // 150X == VC++ 9.0
    // A bug in VC9:
-#  define BOOST_NO_ADL_BARRIER
+#  define NDNBOOST_NO_ADL_BARRIER
 #endif
 
 
@@ -132,128 +132,128 @@
 // https://connect.microsoft.com/VisualStudio/feedback/details/100744
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, May 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#  define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
 
 #ifndef _NATIVE_WCHAR_T_DEFINED
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
 #if defined(_WIN32_WCE) || defined(UNDER_CE)
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 // we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
 #if !defined(_WIN32_WCE) && !defined(UNDER_CE)
-#  define BOOST_HAS_THREADEX
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#  define NDNBOOST_HAS_THREADEX
+#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
 #endif
 
 //   
 // check for exception handling support:   
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS   
+#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
+#  define NDNBOOST_NO_EXCEPTIONS   
 #endif 
 
 //
 // __int64 support:
 //
 #if (_MSC_VER >= 1200)
-#   define BOOST_HAS_MS_INT64
+#   define NDNBOOST_HAS_MS_INT64
 #endif
 #if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
-#   define BOOST_HAS_LONG_LONG
+#   define NDNBOOST_HAS_LONG_LONG
 #else
-#   define BOOST_NO_LONG_LONG
+#   define NDNBOOST_NO_LONG_LONG
 #endif
 #if (_MSC_VER >= 1400) && !defined(_DEBUG)
-#   define BOOST_HAS_NRVO
+#   define NDNBOOST_HAS_NRVO
 #endif
 //
 // disable Win32 API's if compiler extentions are
 // turned off:
 //
-#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32
+#if !defined(_MSC_EXTENSIONS) && !defined(NDNBOOST_DISABLE_WIN32)
+#  define NDNBOOST_DISABLE_WIN32
 #endif
-#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if !defined(_CPPRTTI) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
 //
 // TR1 features:
 //
 #if _MSC_VER >= 1700
-// # define BOOST_HAS_TR1_HASH			// don't know if this is true yet.
-// # define BOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
-# define BOOST_HAS_TR1_UNORDERED_MAP
-# define BOOST_HAS_TR1_UNORDERED_SET
+// # define NDNBOOST_HAS_TR1_HASH			// don't know if this is true yet.
+// # define NDNBOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
+# define NDNBOOST_HAS_TR1_UNORDERED_MAP
+# define NDNBOOST_HAS_TR1_UNORDERED_SET
 #endif
 
 //
 // C++0x features
 //
-//   See above for BOOST_NO_LONG_LONG
+//   See above for NDNBOOST_NO_LONG_LONG
 
 // C++ features supported by VC++ 10 (aka 2010)
 //
 #if _MSC_VER < 1600
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_DECLTYPE
+#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
+#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+#  define NDNBOOST_NO_CXX11_LAMBDAS
+#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
+#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
+#  define NDNBOOST_NO_CXX11_NULLPTR
+#  define NDNBOOST_NO_CXX11_DECLTYPE
 #endif // _MSC_VER < 1600
 
 #if _MSC_VER >= 1600
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 // C++ features supported by VC++ 11 (aka 2012)
 //
 #if _MSC_VER < 1700
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
+#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
+#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
 #endif // _MSC_VER < 1700
 
 // C++11 features supported by VC++ 11 (aka 2012) November 2012 CTP
 // Because the CTP is unsupported, unrelease, and only alpha quality,
-// it is only supported if BOOST_MSVC_ENABLE_2012_NOV_CTP is defined.
+// it is only supported if NDNBOOST_MSVC_ENABLE_2012_NOV_CTP is defined.
 //
-#if _MSC_FULL_VER < 170051025 || !defined(BOOST_MSVC_ENABLE_2012_NOV_CTP)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+#if _MSC_FULL_VER < 170051025 || !defined(NDNBOOST_MSVC_ENABLE_2012_NOV_CTP)
+#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#  define NDNBOOST_NO_CXX11_RAW_LITERALS
+#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
+#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 #endif
 
 // C++11 features not supported by any versions
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#define NDNBOOST_NO_CXX11_CHAR16_T
+#define NDNBOOST_NO_CXX11_CHAR32_T
+#define NDNBOOST_NO_CXX11_CONSTEXPR
+#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
+#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
+#define NDNBOOST_NO_CXX11_NOEXCEPT
+#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
+#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
+#define NDNBOOST_NO_SFINAE_EXPR
+#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
 
 //
 // prefix and suffix headers:
 //
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "ndnboost/config/abi/msvc_prefix.hpp"
+#ifndef NDNBOOST_ABI_PREFIX
+#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/msvc_prefix.hpp"
 #endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "ndnboost/config/abi/msvc_suffix.hpp"
+#ifndef NDNBOOST_ABI_SUFFIX
+#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/msvc_suffix.hpp"
 #endif
 
-#ifndef BOOST_COMPILER
+#ifndef NDNBOOST_COMPILER
 // TODO:
 // these things are mostly bogus. 1200 means version 12.0 of the compiler. The 
 // artificial versions assigned to them only refer to the versions of some IDE
@@ -264,24 +264,24 @@
 #   if _MSC_VER < 1200
       // Note: these are so far off, they are not really supported
 #   elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
-#     define BOOST_COMPILER_VERSION evc4.0
+#     define NDNBOOST_COMPILER_VERSION evc4.0
 #   elif _MSC_VER < 1400
       // Note: I'm not aware of any CE compiler with version 13xx
-#      if defined(BOOST_ASSERT_CONFIG)
+#      if defined(NDNBOOST_ASSERT_CONFIG)
 #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 #      else
 #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
 #      endif
 #   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION evc8
+#     define NDNBOOST_COMPILER_VERSION evc8
 #   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION evc9
+#     define NDNBOOST_COMPILER_VERSION evc9
 #   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION evc10
+#     define NDNBOOST_COMPILER_VERSION evc10
 #   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION evc11 
+#     define NDNBOOST_COMPILER_VERSION evc11 
 #   else
-#      if defined(BOOST_ASSERT_CONFIG)
+#      if defined(NDNBOOST_ASSERT_CONFIG)
 #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 #      else
 #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
@@ -290,33 +290,33 @@
 # else
 #   if _MSC_VER < 1200
       // Note: these are so far off, they are not really supported
-#     define BOOST_COMPILER_VERSION 5.0
+#     define NDNBOOST_COMPILER_VERSION 5.0
 #   elif _MSC_VER < 1300
-#       define BOOST_COMPILER_VERSION 6.0
+#       define NDNBOOST_COMPILER_VERSION 6.0
 #   elif _MSC_VER < 1310
-#     define BOOST_COMPILER_VERSION 7.0
+#     define NDNBOOST_COMPILER_VERSION 7.0
 #   elif _MSC_VER < 1400
-#     define BOOST_COMPILER_VERSION 7.1
+#     define NDNBOOST_COMPILER_VERSION 7.1
 #   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION 8.0
+#     define NDNBOOST_COMPILER_VERSION 8.0
 #   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION 9.0
+#     define NDNBOOST_COMPILER_VERSION 9.0
 #   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION 10.0
+#     define NDNBOOST_COMPILER_VERSION 10.0
 #   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION 11.0 
+#     define NDNBOOST_COMPILER_VERSION 11.0 
 #   else
-#     define BOOST_COMPILER_VERSION _MSC_VER
+#     define NDNBOOST_COMPILER_VERSION _MSC_VER
 #   endif
 # endif
 
-#  define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
+#  define NDNBOOST_COMPILER "Microsoft Visual C++ version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
 #endif
 
 //
 // last known and checked version is 1700 (VC11, aka 2011):
 #if (_MSC_VER > 1700)
-#  if defined(BOOST_ASSERT_CONFIG)
+#  if defined(NDNBOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
 #  else
 #     pragma message("Unknown compiler version - please run the configure tests and report the results")
diff --git a/include/ndnboost/config/no_tr1/cmath.hpp b/include/ndnboost/config/no_tr1/cmath.hpp
index 635e543..df3bdb7 100644
--- a/include/ndnboost/config/no_tr1/cmath.hpp
+++ b/include/ndnboost/config/no_tr1/cmath.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_CMATH
-#  define BOOST_CONFIG_CMATH
+#ifndef NDNBOOST_CONFIG_CMATH
+#  define NDNBOOST_CONFIG_CMATH
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_CMATH_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_CMATH_RECURSION
 #  endif
 
 #  include <cmath>
 
-#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_CMATH_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_CMATH_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_CMATH_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/complex.hpp b/include/ndnboost/config/no_tr1/complex.hpp
index 4f7c97c..7c22667 100644
--- a/include/ndnboost/config/no_tr1/complex.hpp
+++ b/include/ndnboost/config/no_tr1/complex.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_COMPLEX
-#  define BOOST_CONFIG_COMPLEX
+#ifndef NDNBOOST_CONFIG_COMPLEX
+#  define NDNBOOST_CONFIG_COMPLEX
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_COMPLEX_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
 #  endif
 
 #  include <complex>
 
-#  ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_COMPLEX_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/functional.hpp b/include/ndnboost/config/no_tr1/functional.hpp
index 5679772..8e7fb5c 100644
--- a/include/ndnboost/config/no_tr1/functional.hpp
+++ b/include/ndnboost/config/no_tr1/functional.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_FUNCTIONAL
-#  define BOOST_CONFIG_FUNCTIONAL
+#ifndef NDNBOOST_CONFIG_FUNCTIONAL
+#  define NDNBOOST_CONFIG_FUNCTIONAL
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 #  endif
 
 #  include <functional>
 
-#  ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/memory.hpp b/include/ndnboost/config/no_tr1/memory.hpp
index e035156..153226c 100644
--- a/include/ndnboost/config/no_tr1/memory.hpp
+++ b/include/ndnboost/config/no_tr1/memory.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_MEMORY
-#  define BOOST_CONFIG_MEMORY
+#ifndef NDNBOOST_CONFIG_MEMORY
+#  define NDNBOOST_CONFIG_MEMORY
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_MEMORY_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_MEMORY_RECURSION
 #  endif
 
 #  include <memory>
 
-#  ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_MEMORY_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_MEMORY_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_MEMORY_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/no_tr1/utility.hpp b/include/ndnboost/config/no_tr1/utility.hpp
index de60035..d55b65f 100644
--- a/include/ndnboost/config/no_tr1/utility.hpp
+++ b/include/ndnboost/config/no_tr1/utility.hpp
@@ -10,19 +10,19 @@
 // dependencies:
 //
 
-#ifndef BOOST_CONFIG_UTILITY
-#  define BOOST_CONFIG_UTILITY
+#ifndef NDNBOOST_CONFIG_UTILITY
+#  define NDNBOOST_CONFIG_UTILITY
 
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_UTILITY_RECURSION
+#  ifndef NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_TR1_NO_RECURSION
+#     define NDNBOOST_CONFIG_NO_UTILITY_RECURSION
 #  endif
 
 #  include <utility>
 
-#  ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_UTILITY_RECURSION
+#  ifdef NDNBOOST_CONFIG_NO_UTILITY_RECURSION
+#     undef NDNBOOST_TR1_NO_RECURSION
+#     undef NDNBOOST_CONFIG_NO_UTILITY_RECURSION
 #  endif
 
 #endif
diff --git a/include/ndnboost/config/platform/aix.hpp b/include/ndnboost/config/platform/aix.hpp
index 43521cf..2c8bd90 100644
--- a/include/ndnboost/config/platform/aix.hpp
+++ b/include/ndnboost/config/platform/aix.hpp
@@ -7,23 +7,23 @@
 
 //  IBM/Aix specific config options:
 
-#define BOOST_PLATFORM "IBM Aix"
+#define NDNBOOST_PLATFORM "IBM Aix"
 
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_NL_TYPES_H
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_NL_TYPES_H
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_CLOCK_GETTIME
 
 // This needs support in "ndnboost/cstdint.hpp" exactly like FreeBSD.
 // This platform has header named <inttypes.h> which includes all
 // the things needed.
-#define BOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_STDINT_H
 
 // Threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_DELAY_NP
-#define BOOST_HAS_SCHED_YIELD
-//#define BOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_PTHREAD_DELAY_NP
+#define NDNBOOST_HAS_SCHED_YIELD
+//#define NDNBOOST_HAS_PTHREAD_YIELD
 
 // boilerplate code:
 #include <ndnboost/config/posix_features.hpp>
diff --git a/include/ndnboost/config/platform/amigaos.hpp b/include/ndnboost/config/platform/amigaos.hpp
index 34bcf41..26d2dd6 100644
--- a/include/ndnboost/config/platform/amigaos.hpp
+++ b/include/ndnboost/config/platform/amigaos.hpp
@@ -5,11 +5,11 @@
 
 //  See http://www.boost.org for most recent version.
 
-#define BOOST_PLATFORM "AmigaOS"
+#define NDNBOOST_PLATFORM "AmigaOS"
 
-#define BOOST_DISABLE_THREADS
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_STD_WSTRING
-#define BOOST_NO_INTRINSIC_WCHAR_T
+#define NDNBOOST_DISABLE_THREADS
+#define NDNBOOST_NO_CWCHAR
+#define NDNBOOST_NO_STD_WSTRING
+#define NDNBOOST_NO_INTRINSIC_WCHAR_T
  
 
diff --git a/include/ndnboost/config/platform/beos.hpp b/include/ndnboost/config/platform/beos.hpp
index 5a5fcdc..3dab0b0 100644
--- a/include/ndnboost/config/platform/beos.hpp
+++ b/include/ndnboost/config/platform/beos.hpp
@@ -7,16 +7,16 @@
 
 //  BeOS specific config options:
 
-#define BOOST_PLATFORM "BeOS"
+#define NDNBOOST_PLATFORM "BeOS"
 
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_CWCTYPE
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_NO_CWCHAR
+#define NDNBOOST_NO_CWCTYPE
+#define NDNBOOST_HAS_UNISTD_H
 
-#define BOOST_HAS_BETHREADS
+#define NDNBOOST_HAS_BETHREADS
 
-#ifndef BOOST_DISABLE_THREADS
-#  define BOOST_HAS_THREADS
+#ifndef NDNBOOST_DISABLE_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 // boilerplate code:
diff --git a/include/ndnboost/config/platform/bsd.hpp b/include/ndnboost/config/platform/bsd.hpp
index 0510d28..df54511 100644
--- a/include/ndnboost/config/platform/bsd.hpp
+++ b/include/ndnboost/config/platform/bsd.hpp
@@ -14,13 +14,13 @@
 #endif
 
 #ifdef __FreeBSD__
-#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
+#define NDNBOOST_PLATFORM "FreeBSD " NDNBOOST_STRINGIZE(__FreeBSD__)
 #elif defined(__NetBSD__)
-#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
+#define NDNBOOST_PLATFORM "NetBSD " NDNBOOST_STRINGIZE(__NetBSD__)
 #elif defined(__OpenBSD__)
-#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
+#define NDNBOOST_PLATFORM "OpenBSD " NDNBOOST_STRINGIZE(__OpenBSD__)
 #elif defined(__DragonFly__)
-#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
+#define NDNBOOST_PLATFORM "DragonFly " NDNBOOST_STRINGIZE(__DragonFly__)
 #endif
 
 //
@@ -29,7 +29,7 @@
 // advertise the fact in <unistd.h>:
 //
 #if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
-#  define BOOST_HAS_NL_TYPES_H
+#  define NDNBOOST_HAS_NL_TYPES_H
 #endif
 
 //
@@ -38,7 +38,7 @@
 //
 #if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
    || defined(__OpenBSD__) || defined(__DragonFly__) 
-#  define BOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_PTHREADS
 #endif
 
 //
@@ -57,26 +57,26 @@
 
 #if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
       || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
-#  define BOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCHAR
 #endif
 //
 // The BSD <ctype.h> has macros only, no functions:
 //
 #if !defined(__OpenBSD__) || defined(__DragonFly__)
-#  define BOOST_NO_CTYPE_FUNCTIONS
+#  define NDNBOOST_NO_CTYPE_FUNCTIONS
 #endif
 
 //
 // thread API's not auto detected:
 //
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#define BOOST_HAS_SIGACTION
+#define NDNBOOST_HAS_SCHED_YIELD
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_SIGACTION
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/cray.hpp b/include/ndnboost/config/platform/cray.hpp
index b25003d..200cdab 100644
--- a/include/ndnboost/config/platform/cray.hpp
+++ b/include/ndnboost/config/platform/cray.hpp
@@ -8,10 +8,10 @@
 
 //  SGI Irix specific config options:
 
-#define BOOST_PLATFORM "Cray"
+#define NDNBOOST_PLATFORM "Cray"
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/cygwin.hpp b/include/ndnboost/config/platform/cygwin.hpp
index 96eda3b..30022ff 100644
--- a/include/ndnboost/config/platform/cygwin.hpp
+++ b/include/ndnboost/config/platform/cygwin.hpp
@@ -7,28 +7,28 @@
 
 //  cygwin specific config options:
 
-#define BOOST_PLATFORM "Cygwin"
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_LOG1P
-#define BOOST_HAS_EXPM1
+#define NDNBOOST_PLATFORM "Cygwin"
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_LOG1P
+#define NDNBOOST_HAS_EXPM1
 
 //
 // Threading API:
 // See if we have POSIX threads, if we do use them, otherwise
 // revert to native Win threads.
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <unistd.h>
-#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_SIGACTION
+#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(NDNBOOST_HAS_WINTHREADS)
+#  define NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_SIGACTION
 #else
-#  if !defined(BOOST_HAS_WINTHREADS)
-#     define BOOST_HAS_WINTHREADS
+#  if !defined(NDNBOOST_HAS_WINTHREADS)
+#     define NDNBOOST_HAS_WINTHREADS
 #  endif
-#  define BOOST_HAS_FTIME
+#  define NDNBOOST_HAS_FTIME
 #endif
 
 //
@@ -36,11 +36,11 @@
 //
 #include <sys/types.h>
 #ifdef _STDINT_H
-#define BOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_STDINT_H
 #endif
 
 /// Cygwin has no fenv.h
-#define BOOST_NO_FENV_H
+#define NDNBOOST_NO_FENV_H
 
 // boilerplate code:
 #include <ndnboost/config/posix_features.hpp>
@@ -48,8 +48,8 @@
 //
 // Cygwin lies about XSI conformance, there is no nl_types.h:
 //
-#ifdef BOOST_HAS_NL_TYPES_H
-#  undef BOOST_HAS_NL_TYPES_H
+#ifdef NDNBOOST_HAS_NL_TYPES_H
+#  undef NDNBOOST_HAS_NL_TYPES_H
 #endif
  
 
diff --git a/include/ndnboost/config/platform/hpux.hpp b/include/ndnboost/config/platform/hpux.hpp
index 3c717c3..e540a2e 100644
--- a/include/ndnboost/config/platform/hpux.hpp
+++ b/include/ndnboost/config/platform/hpux.hpp
@@ -11,77 +11,77 @@
 
 //  hpux specific config options:
 
-#define BOOST_PLATFORM "HP-UX"
+#define NDNBOOST_PLATFORM "HP-UX"
 
 // In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
 // However, it has the following problem:
 // Use of UINT32_C(0) results in "0u l" for the preprocessed source
 // (verifyable with gcc 2.95.3)
 #if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #endif
 
 #if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 #if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
-#  define BOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_CWCTYPE
 #endif
 
 #if defined(__GNUC__)
 #  if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
       // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
-#     define BOOST_DISABLE_THREADS
-#  elif !defined(BOOST_DISABLE_THREADS)
+#     define NDNBOOST_DISABLE_THREADS
+#  elif !defined(NDNBOOST_DISABLE_THREADS)
       // threads supported from gcc-3.3 onwards:
-#     define BOOST_HAS_THREADS
-#     define BOOST_HAS_PTHREADS
+#     define NDNBOOST_HAS_THREADS
+#     define NDNBOOST_HAS_PTHREADS
 #  endif
-#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
-#  define BOOST_HAS_PTHREADS
+#elif defined(__HP_aCC) && !defined(NDNBOOST_DISABLE_THREADS)
+#  define NDNBOOST_HAS_PTHREADS
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 // the following are always available:
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_GETTIMEOFDAY
+#ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
-#ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
+#ifndef NDNBOOST_HAS_SCHED_YIELD
+#    define NDNBOOST_HAS_SCHED_YIELD
 #endif
-#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #endif
-#ifndef BOOST_HAS_NL_TYPES_H
-#    define BOOST_HAS_NL_TYPES_H
+#ifndef NDNBOOST_HAS_NL_TYPES_H
+#    define NDNBOOST_HAS_NL_TYPES_H
 #endif
-#ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
+#ifndef NDNBOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_NANOSLEEP
 #endif
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
+#ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#    define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
-#ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
+#ifndef NDNBOOST_HAS_DIRENT_H
+#    define NDNBOOST_HAS_DIRENT_H
 #endif
-#ifndef BOOST_HAS_CLOCK_GETTIME
-#    define BOOST_HAS_CLOCK_GETTIME
+#ifndef NDNBOOST_HAS_CLOCK_GETTIME
+#    define NDNBOOST_HAS_CLOCK_GETTIME
 #endif
-#ifndef BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SIGACTION
+#ifndef NDNBOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SIGACTION
 #endif
-#ifndef BOOST_HAS_NRVO 
+#ifndef NDNBOOST_HAS_NRVO 
 #  ifndef __parisc
-#    define BOOST_HAS_NRVO
+#    define NDNBOOST_HAS_NRVO
 #  endif
 #endif
-#ifndef BOOST_HAS_LOG1P 
-#  define BOOST_HAS_LOG1P
+#ifndef NDNBOOST_HAS_LOG1P 
+#  define NDNBOOST_HAS_LOG1P
 #endif
-#ifndef BOOST_HAS_EXPM1
-#  define BOOST_HAS_EXPM1
+#ifndef NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_EXPM1
 #endif
 
diff --git a/include/ndnboost/config/platform/irix.hpp b/include/ndnboost/config/platform/irix.hpp
index 8064127..852d821 100644
--- a/include/ndnboost/config/platform/irix.hpp
+++ b/include/ndnboost/config/platform/irix.hpp
@@ -9,22 +9,22 @@
 
 //  SGI Irix specific config options:
 
-#define BOOST_PLATFORM "SGI Irix"
+#define NDNBOOST_PLATFORM "SGI Irix"
 
-#define BOOST_NO_SWPRINTF 
+#define NDNBOOST_NO_SWPRINTF 
 //
 // these are not auto detected by POSIX feature tests:
 //
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 
 #ifdef __GNUC__
    // GNU C on IRIX does not support threads (checked up to gcc 3.3)
-#  define BOOST_DISABLE_THREADS
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 
diff --git a/include/ndnboost/config/platform/linux.hpp b/include/ndnboost/config/platform/linux.hpp
index b5769ad..1073635 100644
--- a/include/ndnboost/config/platform/linux.hpp
+++ b/include/ndnboost/config/platform/linux.hpp
@@ -8,7 +8,7 @@
 
 //  linux specific config options:
 
-#define BOOST_PLATFORM "linux"
+#define NDNBOOST_PLATFORM "linux"
 
 // make sure we have __GLIBC_PREREQ if available at all
 #ifdef __cplusplus
@@ -26,7 +26,7 @@
    // int64_t only if __GNUC__.  Thus, assume a fully usable <stdint.h>
    // only when using GCC.
 #  if defined __GNUC__
-#    define BOOST_HAS_STDINT_H
+#    define NDNBOOST_HAS_STDINT_H
 #  endif
 #endif
 
@@ -37,11 +37,11 @@
    // e.g. version 25 is 21 (dec)
    //
 #  if __LIBCOMO_VERSION__ <= 20
-#    define BOOST_NO_STDC_NAMESPACE
+#    define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
 
 #  if __LIBCOMO_VERSION__ <= 21
-#    define BOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_SWPRINTF
 #  endif
 
 #endif
@@ -51,11 +51,11 @@
 // gettimeofday, earlier versions may or may not have it:
 //
 #if defined(__GLIBC__) && (__GLIBC__ >= 2)
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
 
 #ifdef __USE_POSIX199309
-#  define BOOST_HAS_NANOSLEEP
+#  define NDNBOOST_HAS_NANOSLEEP
 #endif
 
 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
@@ -63,16 +63,16 @@
 
    // swprintf is available since glibc 2.2.0
 #  if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
-#    define BOOST_NO_SWPRINTF
+#    define NDNBOOST_NO_SWPRINTF
 #  endif
 #else
-#  define BOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
-#define BOOST_HAS_PTHREAD_YIELD
+#define NDNBOOST_HAS_PTHREAD_YIELD
 
 #ifndef __GNUC__
 //
diff --git a/include/ndnboost/config/platform/macos.hpp b/include/ndnboost/config/platform/macos.hpp
index f755410..c6922db 100644
--- a/include/ndnboost/config/platform/macos.hpp
+++ b/include/ndnboost/config/platform/macos.hpp
@@ -9,14 +9,14 @@
 
 //  Mac OS specific config options:
 
-#define BOOST_PLATFORM "Mac OS"
+#define NDNBOOST_PLATFORM "Mac OS"
 
 #if __MACH__ && !defined(_MSL_USING_MSL_C)
 
 // Using the Mac OS X system BSD-style C library.
 
-#  ifndef BOOST_HAS_UNISTD_H
-#    define BOOST_HAS_UNISTD_H
+#  ifndef NDNBOOST_HAS_UNISTD_H
+#    define NDNBOOST_HAS_UNISTD_H
 #  endif
 //
 // Begin by including our boilerplate code for POSIX
@@ -26,8 +26,8 @@
 // should also always be able to do this on MaxOS X.
 //
 #  include <ndnboost/config/posix_features.hpp>
-#  ifndef BOOST_HAS_STDINT_H
-#     define BOOST_HAS_STDINT_H
+#  ifndef NDNBOOST_HAS_STDINT_H
+#     define NDNBOOST_HAS_STDINT_H
 #  endif
 
 //
@@ -35,23 +35,23 @@
 // of these only pthreads are advertised in <unistd.h>, so set the 
 // other options explicitly:
 //
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_SIGACTION
+#  define NDNBOOST_HAS_SCHED_YIELD
+#  define NDNBOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_SIGACTION
 
 #  if (__GNUC__ < 3) && !defined( __APPLE_CC__)
 
 // GCC strange "ignore std" mode works better if you pretend everything
 // is in the std namespace, for the most part.
 
-#    define BOOST_NO_STDC_NAMESPACE
+#    define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
 
 #  if (__GNUC__ == 4)
 
 // Both gcc and intel require these.  
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_NANOSLEEP
 
 #  endif
 
@@ -63,21 +63,21 @@
 // not support this yet.
 #  if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
 
-#  if !defined(BOOST_HAS_PTHREADS)
+#  if !defined(NDNBOOST_HAS_PTHREADS)
 // MPTasks support is deprecated/removed from Boost:
-//#    define BOOST_HAS_MPTASKS
+//#    define NDNBOOST_HAS_MPTASKS
 #  elif ( __dest_os == __mac_os_x )
 // We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
 // gettimeofday and no posix.
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #  endif
 
-#ifdef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_THREADS
+#ifdef NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 // The remote call manager depends on this.
-#    define BOOST_BIND_ENABLE_PASCAL
+#    define NDNBOOST_BIND_ENABLE_PASCAL
 
 #  endif
 
diff --git a/include/ndnboost/config/platform/qnxnto.hpp b/include/ndnboost/config/platform/qnxnto.hpp
index c8b59be..972bf5c 100644
--- a/include/ndnboost/config/platform/qnxnto.hpp
+++ b/include/ndnboost/config/platform/qnxnto.hpp
@@ -7,23 +7,23 @@
 
 //  QNX specific config options:
 
-#define BOOST_PLATFORM "QNX"
+#define NDNBOOST_PLATFORM "QNX"
 
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
 // or log1p and expm1:
-#undef  BOOST_HAS_NL_TYPES_H
-#undef  BOOST_HAS_LOG1P
-#undef  BOOST_HAS_EXPM1
+#undef  NDNBOOST_HAS_NL_TYPES_H
+#undef  NDNBOOST_HAS_LOG1P
+#undef  NDNBOOST_HAS_EXPM1
 
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_NANOSLEEP
 
 
 
diff --git a/include/ndnboost/config/platform/solaris.hpp b/include/ndnboost/config/platform/solaris.hpp
index 2de1151..e9ce41e 100644
--- a/include/ndnboost/config/platform/solaris.hpp
+++ b/include/ndnboost/config/platform/solaris.hpp
@@ -8,19 +8,19 @@
 
 //  sun specific config options:
 
-#define BOOST_PLATFORM "Sun Solaris"
+#define NDNBOOST_PLATFORM "Sun Solaris"
 
-#define BOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_GETTIMEOFDAY
 
 // boilerplate code:
-#define BOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_UNISTD_H
 #include <ndnboost/config/posix_features.hpp>
 
 //
 // pthreads don't actually work with gcc unless _PTHREADS is defined:
 //
 #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
-# undef BOOST_HAS_PTHREADS
+# undef NDNBOOST_HAS_PTHREADS
 #endif
 
 
diff --git a/include/ndnboost/config/platform/symbian.hpp b/include/ndnboost/config/platform/symbian.hpp
index 3ccdb4b..1b32193 100644
--- a/include/ndnboost/config/platform/symbian.hpp
+++ b/include/ndnboost/config/platform/symbian.hpp
@@ -10,54 +10,54 @@
 //  symbian specific config options:
 
 
-#define BOOST_PLATFORM "Symbian"
-#define BOOST_SYMBIAN 1
+#define NDNBOOST_PLATFORM "Symbian"
+#define NDNBOOST_SYMBIAN 1
 
 
 #if defined(__S60_3X__)
 // Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
-#  define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
+#  define NDNBOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
 // make sure we have __GLIBC_PREREQ if available at all
 #ifdef __cplusplus
 #include <cstdlib>
 #else
 #include <stdlib.h>
 #endif// boilerplate code:
-#  define BOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_UNISTD_H
 #  include <ndnboost/config/posix_features.hpp>
 // S60 SDK defines _POSIX_VERSION as POSIX.1
-#  ifndef BOOST_HAS_STDINT_H
-#    define BOOST_HAS_STDINT_H
+#  ifndef NDNBOOST_HAS_STDINT_H
+#    define NDNBOOST_HAS_STDINT_H
 #  endif
-#  ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
+#  ifndef NDNBOOST_HAS_GETTIMEOFDAY
+#    define NDNBOOST_HAS_GETTIMEOFDAY
 #  endif
-#  ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
+#  ifndef NDNBOOST_HAS_DIRENT_H
+#    define NDNBOOST_HAS_DIRENT_H
 #  endif
-#  ifndef BOOST_HAS_SIGACTION
-#    define BOOST_HAS_SIGACTION
+#  ifndef NDNBOOST_HAS_SIGACTION
+#    define NDNBOOST_HAS_SIGACTION
 #  endif
-#  ifndef BOOST_HAS_PTHREADS
-#    define BOOST_HAS_PTHREADS
+#  ifndef NDNBOOST_HAS_PTHREADS
+#    define NDNBOOST_HAS_PTHREADS
 #  endif
-#  ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
+#  ifndef NDNBOOST_HAS_NANOSLEEP
+#    define NDNBOOST_HAS_NANOSLEEP
 #  endif
-#  ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
+#  ifndef NDNBOOST_HAS_SCHED_YIELD
+#    define NDNBOOST_HAS_SCHED_YIELD
 #  endif
-#  ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #  endif
-#  ifndef BOOST_HAS_LOG1P
-#    define BOOST_HAS_LOG1P
+#  ifndef NDNBOOST_HAS_LOG1P
+#    define NDNBOOST_HAS_LOG1P
 #  endif
-#  ifndef BOOST_HAS_EXPM1
-#    define BOOST_HAS_EXPM1
+#  ifndef NDNBOOST_HAS_EXPM1
+#    define NDNBOOST_HAS_EXPM1
 #  endif
-#  ifndef BOOST_POSIX_API
-#    define BOOST_POSIX_API
+#  ifndef NDNBOOST_POSIX_API
+#    define NDNBOOST_POSIX_API
 #  endif
 // endianess support
 #  include <sys/endian.h>
@@ -80,18 +80,18 @@
 #    define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
 #  endif
 // Known limitations
-#  define BOOST_ASIO_DISABLE_SERIAL_PORT
-#  define BOOST_DATE_TIME_NO_LOCALE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_EXCEPTION_DISABLE
-#  define BOOST_NO_EXCEPTIONS
+#  define NDNBOOST_ASIO_DISABLE_SERIAL_PORT
+#  define NDNBOOST_DATE_TIME_NO_LOCALE
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_EXCEPTION_DISABLE
+#  define NDNBOOST_NO_EXCEPTIONS
 
 #else // TODO: More platform support e.g. UIQ
 #  error "Unsuppoted Symbian SDK"
 #endif
 
-#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
+#if defined(__WINSCW__) && !defined(NDNBOOST_DISABLE_WIN32)
+#  define NDNBOOST_DISABLE_WIN32 // winscw defines WIN32 macro
 #endif
 
 
diff --git a/include/ndnboost/config/platform/vms.hpp b/include/ndnboost/config/platform/vms.hpp
index f70efcf..f5f7457 100644
--- a/include/ndnboost/config/platform/vms.hpp
+++ b/include/ndnboost/config/platform/vms.hpp
@@ -3,23 +3,23 @@
 //  Boost Software License, Version 1.0. (See accompanying file  
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 
 
-#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 
-#define BOOST_CONFIG_PLATFORM_VMS_HPP 
+#ifndef NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
+#define NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
 
-#define BOOST_PLATFORM "OpenVMS" 
+#define NDNBOOST_PLATFORM "OpenVMS" 
 
-#undef  BOOST_HAS_STDINT_H 
-#define BOOST_HAS_UNISTD_H 
-#define BOOST_HAS_NL_TYPES_H 
-#define BOOST_HAS_GETTIMEOFDAY 
-#define BOOST_HAS_DIRENT_H 
-#define BOOST_HAS_PTHREADS 
-#define BOOST_HAS_NANOSLEEP 
-#define BOOST_HAS_CLOCK_GETTIME 
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
-#define BOOST_HAS_LOG1P 
-#define BOOST_HAS_EXPM1 
-#define BOOST_HAS_THREADS 
-#undef  BOOST_HAS_SCHED_YIELD 
+#undef  NDNBOOST_HAS_STDINT_H 
+#define NDNBOOST_HAS_UNISTD_H 
+#define NDNBOOST_HAS_NL_TYPES_H 
+#define NDNBOOST_HAS_GETTIMEOFDAY 
+#define NDNBOOST_HAS_DIRENT_H 
+#define NDNBOOST_HAS_PTHREADS 
+#define NDNBOOST_HAS_NANOSLEEP 
+#define NDNBOOST_HAS_CLOCK_GETTIME 
+#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
+#define NDNBOOST_HAS_LOG1P 
+#define NDNBOOST_HAS_EXPM1 
+#define NDNBOOST_HAS_THREADS 
+#undef  NDNBOOST_HAS_SCHED_YIELD 
 
 #endif 
diff --git a/include/ndnboost/config/platform/vxworks.hpp b/include/ndnboost/config/platform/vxworks.hpp
index b94c329..425044e 100644
--- a/include/ndnboost/config/platform/vxworks.hpp
+++ b/include/ndnboost/config/platform/vxworks.hpp
@@ -124,55 +124,55 @@
 
 // vxWorks specific config options:
 // --------------------------------
-#define BOOST_PLATFORM "vxWorks"
+#define NDNBOOST_PLATFORM "vxWorks"
 
 // Special behaviour for DKMs:
 #ifdef _WRS_KERNEL
   // DKMs do not have the <cwchar>-header,
   // but apparently they do have an intrinsic wchar_t meanwhile!
-#  define BOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCHAR
 
   // Lots of wide-functions and -headers are unavailable for DKMs as well:
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_SWPRINTF
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 // Generally available headers:
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_UNISTD_H
+#define NDNBOOST_HAS_STDINT_H
+#define NDNBOOST_HAS_DIRENT_H
+#define NDNBOOST_HAS_SLIST
 
 // vxWorks does not have installed an iconv-library by default,
 // so unfortunately no Unicode support from scratch is available!
 // Thus, instead it is suggested to switch to ICU, as this seems
 // to be the most complete and portable option...
-#define BOOST_LOCALE_WITH_ICU
+#define NDNBOOST_LOCALE_WITH_ICU
 
 // Generally available functionality:
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_HAS_THREADS
+#define NDNBOOST_HAS_NANOSLEEP
+#define NDNBOOST_HAS_GETTIMEOFDAY
+#define NDNBOOST_HAS_CLOCK_GETTIME
+#define NDNBOOST_HAS_MACRO_USE_FACET
 
 // Generally unavailable functionality, delivered by boost's test function:
-//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_VARIADIC_MACROS
+//#define NDNBOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
+#define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
+#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
 
 // Generally available threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_SIGACTION
+#define NDNBOOST_HAS_PTHREADS
+#define NDNBOOST_HAS_SCHED_YIELD
+#define NDNBOOST_HAS_SIGACTION
 
 // Functionality available for RTPs only:
 #ifdef __RTP__
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_EXPM1
 #endif
 
 // Functionality available for DKMs only:
@@ -192,7 +192,7 @@
 #endif
 
 // vxWorks doesn't work with asio serial ports:
-#define BOOST_ASIO_DISABLE_SERIAL_PORT
+#define NDNBOOST_ASIO_DISABLE_SERIAL_PORT
 // TODO: The problem here seems to bee that vxWorks uses its own, very specific
 //       ways to handle serial ports, incompatible with POSIX or anything...
 //       Maybe a specific implementation would be possible, but until the
@@ -366,4 +366,4 @@
 #include <ndnboost/config/posix_features.hpp>
 
 // vxWorks lies about XSI conformance, there is no nl_types.h:
-#undef BOOST_HAS_NL_TYPES_H
+#undef NDNBOOST_HAS_NL_TYPES_H
diff --git a/include/ndnboost/config/platform/win32.hpp b/include/ndnboost/config/platform/win32.hpp
index 82b27c8..bc4e1da 100644
--- a/include/ndnboost/config/platform/win32.hpp
+++ b/include/ndnboost/config/platform/win32.hpp
@@ -10,64 +10,64 @@
 
 //  Win32 specific config options:
 
-#define BOOST_PLATFORM "Win32"
+#define NDNBOOST_PLATFORM "Win32"
 
 //  Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
 #if defined(__MINGW32__)
 #  include <_mingw.h>
 #endif
 
-#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
-#  define BOOST_NO_SWPRINTF
+#if defined(__GNUC__) && !defined(NDNBOOST_NO_SWPRINTF)
+#  define NDNBOOST_NO_SWPRINTF
 #endif
 
-//  Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
+//  Default defines for NDNBOOST_SYMBOL_EXPORT and NDNBOOST_SYMBOL_IMPORT
 //  If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
-//  its ndnboost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
-//  BOOST_SYMBOL_IMPORT
-#ifndef BOOST_SYMBOL_EXPORT
-#  define BOOST_HAS_DECLSPEC
-#  define BOOST_SYMBOL_EXPORT __declspec(dllexport)
-#  define BOOST_SYMBOL_IMPORT __declspec(dllimport)
+//  its ndnboost/config/compiler/ file must define NDNBOOST_SYMBOL_EXPORT and
+//  NDNBOOST_SYMBOL_IMPORT
+#ifndef NDNBOOST_SYMBOL_EXPORT
+#  define NDNBOOST_HAS_DECLSPEC
+#  define NDNBOOST_SYMBOL_EXPORT __declspec(dllexport)
+#  define NDNBOOST_SYMBOL_IMPORT __declspec(dllimport)
 #endif
 
 #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #  ifndef __STDC_LIMIT_MACROS
 #     define __STDC_LIMIT_MACROS
 #  endif
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_UNISTD_H
+#  define NDNBOOST_HAS_DIRENT_H
+#  define NDNBOOST_HAS_UNISTD_H
 #endif
 
 #if defined(__MINGW32__) && (__GNUC__ >= 4)
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
+#  define NDNBOOST_HAS_EXPM1
+#  define NDNBOOST_HAS_LOG1P
+#  define NDNBOOST_HAS_GETTIMEOFDAY
 #endif
 //
 // Win32 will normally be using native Win32 threads,
 // but there is a pthread library avaliable as an option,
-// we used to disable this when BOOST_DISABLE_WIN32 was 
+// we used to disable this when NDNBOOST_DISABLE_WIN32 was 
 // defined but no longer - this should allow some
 // files to be compiled in strict mode - while maintaining
-// a consistent setting of BOOST_HAS_THREADS across
+// a consistent setting of NDNBOOST_HAS_THREADS across
 // all translation units (needed for shared_ptr etc).
 //
 
 #ifdef _WIN32_WCE
-#  define BOOST_NO_ANSI_APIS
+#  define NDNBOOST_NO_ANSI_APIS
 #else
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
 #endif
 
-#ifndef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_WINTHREADS
+#ifndef NDNBOOST_HAS_PTHREADS
+#  define NDNBOOST_HAS_WINTHREADS
 #endif
 
-#ifndef BOOST_DISABLE_WIN32
+#ifndef NDNBOOST_DISABLE_WIN32
 // WEK: Added
-#define BOOST_HAS_FTIME
-#define BOOST_WINDOWS 1
+#define NDNBOOST_HAS_FTIME
+#define NDNBOOST_WINDOWS 1
 
 #endif
diff --git a/include/ndnboost/config/posix_features.hpp b/include/ndnboost/config/posix_features.hpp
index d129547..72cc724 100644
--- a/include/ndnboost/config/posix_features.hpp
+++ b/include/ndnboost/config/posix_features.hpp
@@ -14,27 +14,27 @@
 // to the user to do this *before* including any header, although
 // in most cases the compiler will do this for you).
 
-#  if defined(BOOST_HAS_UNISTD_H)
+#  if defined(NDNBOOST_HAS_UNISTD_H)
 #     include <unistd.h>
 
       // XOpen has <nl_types.h>, but is this the correct version check?
 #     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
-#        define BOOST_HAS_NL_TYPES_H
+#        define NDNBOOST_HAS_NL_TYPES_H
 #     endif
 
       // POSIX version 6 requires <stdint.h>
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
-#        define BOOST_HAS_STDINT_H
+#        define NDNBOOST_HAS_STDINT_H
 #     endif
 
       // POSIX version 2 requires <dirent.h>
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
-#        define BOOST_HAS_DIRENT_H
+#        define NDNBOOST_HAS_DIRENT_H
 #     endif
 
       // POSIX version 3 requires <signal.h> to have sigaction:
 #     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
-#        define BOOST_HAS_SIGACTION
+#        define NDNBOOST_HAS_SIGACTION
 #     endif
       // POSIX defines _POSIX_THREADS > 0 for pthread support,
       // however some platforms define _POSIX_THREADS without
@@ -42,49 +42,49 @@
       // Strictly speaking this may catch platforms with a
       // non-functioning stub <pthreads.h>, but such occurrences should
       // occur very rarely if at all.
-#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
-#        define BOOST_HAS_PTHREADS
+#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(NDNBOOST_HAS_WINTHREADS) && !defined(NDNBOOST_HAS_MPTASKS)
+#        define NDNBOOST_HAS_PTHREADS
 #     endif
 
-      // BOOST_HAS_NANOSLEEP:
+      // NDNBOOST_HAS_NANOSLEEP:
       // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
 #     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
              || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_NANOSLEEP
+#        define NDNBOOST_HAS_NANOSLEEP
 #     endif
 
-      // BOOST_HAS_CLOCK_GETTIME:
+      // NDNBOOST_HAS_CLOCK_GETTIME:
       // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
       // but at least one platform - linux - defines that flag without
       // defining clock_gettime):
 #     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
-#        define BOOST_HAS_CLOCK_GETTIME
+#        define NDNBOOST_HAS_CLOCK_GETTIME
 #     endif
 
-      // BOOST_HAS_SCHED_YIELD:
+      // NDNBOOST_HAS_SCHED_YIELD:
       // This is predicated on _POSIX_PRIORITY_SCHEDULING or
       // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
 #     if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
             || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
             || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_SCHED_YIELD
+#        define NDNBOOST_HAS_SCHED_YIELD
 #     endif
 
-      // BOOST_HAS_GETTIMEOFDAY:
-      // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
+      // NDNBOOST_HAS_GETTIMEOFDAY:
+      // NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
       // These are predicated on _XOPEN_VERSION, and appears to be first released
       // in issue 4, version 2 (_XOPEN_VERSION > 500).
       // Likewise for the functions log1p and expm1.
 #     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
-#        define BOOST_HAS_GETTIMEOFDAY
+#        define NDNBOOST_HAS_GETTIMEOFDAY
 #        if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
-#           define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#           define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 #        endif
-#        ifndef BOOST_HAS_LOG1P
-#           define BOOST_HAS_LOG1P
+#        ifndef NDNBOOST_HAS_LOG1P
+#           define NDNBOOST_HAS_LOG1P
 #        endif
-#        ifndef BOOST_HAS_EXPM1
-#           define BOOST_HAS_EXPM1
+#        ifndef NDNBOOST_HAS_EXPM1
+#           define NDNBOOST_HAS_EXPM1
 #        endif
 #     endif
 
diff --git a/include/ndnboost/config/requires_threads.hpp b/include/ndnboost/config/requires_threads.hpp
index be04a8e..7b793a6 100644
--- a/include/ndnboost/config/requires_threads.hpp
+++ b/include/ndnboost/config/requires_threads.hpp
@@ -4,19 +4,19 @@
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 
-#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
-#define BOOST_CONFIG_REQUIRES_THREADS_HPP
+#ifndef NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
+#define NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
 
-#ifndef BOOST_CONFIG_HPP
+#ifndef NDNBOOST_CONFIG_HPP
 #  include <ndnboost/config.hpp>
 #endif
 
-#if defined(BOOST_DISABLE_THREADS)
+#if defined(NDNBOOST_DISABLE_THREADS)
 
 //
 // special case to handle versions of gcc which don't currently support threads:
 //
-#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
+#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(NDNBOOST_STRICT_CONFIG))
 //
 // this is checked up to gcc 3.3:
 //
@@ -26,9 +26,9 @@
 
 #endif
 
-#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
+#  error "Threading support unavaliable: it has been explicitly disabled with NDNBOOST_DISABLE_THREADS"
 
-#elif !defined(BOOST_HAS_THREADS)
+#elif !defined(NDNBOOST_HAS_THREADS)
 
 # if defined __COMO__
 //  Comeau C++
@@ -87,6 +87,6 @@
 
 #endif // compilers
 
-#endif // BOOST_HAS_THREADS
+#endif // NDNBOOST_HAS_THREADS
 
-#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
+#endif // NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
diff --git a/include/ndnboost/config/select_compiler_config.hpp b/include/ndnboost/config/select_compiler_config.hpp
index 2d3cde3..9ddaf2d 100644
--- a/include/ndnboost/config/select_compiler_config.hpp
+++ b/include/ndnboost/config/select_compiler_config.hpp
@@ -11,100 +11,100 @@
 //  See http://www.boost.org/ for most recent version.
 
 // locate which compiler we are using and define
-// BOOST_COMPILER_CONFIG as needed: 
+// NDNBOOST_COMPILER_CONFIG as needed: 
 
 #if defined(__GCCXML__)
 // GCC-XML emulates other compilers, it has to appear first here!
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc_xml.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc_xml.hpp"
 
 #elif defined(_CRAYC)
 // EDG based Cray compiler:
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/cray.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/cray.hpp"
 
 #elif defined __CUDACC__
 //  NVIDIA CUDA C++ compiler for GPU
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/nvcc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/nvcc.hpp"
 
 #elif defined __COMO__
 //  Comeau C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/comeau.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/comeau.hpp"
 
 #elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
 // PathScale EKOPath compiler (has to come before clang and gcc)
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/pathscale.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/pathscale.hpp"
 
 #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
 //  Intel
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/intel.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/intel.hpp"
 
 #elif defined __clang__
 //  Clang C++ emulates GCC, so it has to appear early.
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/clang.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/clang.hpp"
 
 #elif defined __DMC__
 //  Digital Mars C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/digitalmars.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/digitalmars.hpp"
 
 # elif defined __GNUC__
 //  GNU C++:
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc.hpp"
 
 #elif defined __KCC
 //  Kai C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/kai.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/kai.hpp"
 
 #elif defined __sgi
 //  SGI MIPSpro C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/sgi_mipspro.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sgi_mipspro.hpp"
 
 #elif defined __DECCXX
 //  Compaq Tru64 Unix cxx
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/compaq_cxx.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/compaq_cxx.hpp"
 
 #elif defined __ghs
 //  Greenhills C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/greenhills.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/greenhills.hpp"
 
 #elif defined __CODEGEARC__
 //  CodeGear - must be checked for before Borland
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/codegear.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/codegear.hpp"
 
 #elif defined __BORLANDC__
 //  Borland
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/borland.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/borland.hpp"
 
 #elif defined  __MWERKS__
 //  Metrowerks CodeWarrior
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/metrowerks.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/metrowerks.hpp"
 
 #elif defined  __SUNPRO_CC
 //  Sun Workshop Compiler C++
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/sunpro_cc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sunpro_cc.hpp"
 
 #elif defined __HP_aCC
 //  HP aCC
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/hp_acc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/hp_acc.hpp"
 
 #elif defined(__MRC__) || defined(__SC__)
 //  MPW MrCpp or SCpp
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/mpw.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/mpw.hpp"
 
 #elif defined(__IBMCPP__)
 //  IBM Visual Age
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/vacpp.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/vacpp.hpp"
 
 #elif defined(__PGI)
 //  Portland Group Inc.
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/pgi.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/pgi.hpp"
 
 #elif defined _MSC_VER
 //  Microsoft Visual C++
 //
 //  Must remain the last #elif since some other vendors (Metrowerks, for
 //  example) also #define _MSC_VER
-#   define BOOST_COMPILER_CONFIG "ndnboost/config/compiler/visualc.hpp"
+#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/visualc.hpp"
 
-#elif defined (BOOST_ASSERT_CONFIG)
+#elif defined (NDNBOOST_ASSERT_CONFIG)
 // this must come last - generate an error if we don't
 // recognise the compiler:
 #  error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
diff --git a/include/ndnboost/config/select_platform_config.hpp b/include/ndnboost/config/select_platform_config.hpp
index 59d56f3..b043871 100644
--- a/include/ndnboost/config/select_platform_config.hpp
+++ b/include/ndnboost/config/select_platform_config.hpp
@@ -8,74 +8,74 @@
 
 //  See http://www.boost.org for most recent version.
 
-// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
+// locate which platform we are on and define NDNBOOST_PLATFORM_CONFIG as needed.
 // Note that we define the headers to include using "header_name" not
 // <header_name> in order to prevent macro expansion within the header
 // name (for example "linux" is a macro on linux systems).
 
 #if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
 // linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/linux.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/linux.hpp"
 
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 // BSD:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/bsd.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/bsd.hpp"
 
 #elif defined(sun) || defined(__sun)
 // solaris:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/solaris.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/solaris.hpp"
 
 #elif defined(__sgi)
 // SGI Irix:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/irix.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/irix.hpp"
 
 #elif defined(__hpux)
 // hp unix:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/hpux.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/hpux.hpp"
 
 #elif defined(__CYGWIN__)
 // cygwin is not win32:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/cygwin.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cygwin.hpp"
 
 #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 // win32:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/win32.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/win32.hpp"
 
 #elif defined(__BEOS__)
 // BeOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/beos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/beos.hpp"
 
 #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
 // MacOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/macos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/macos.hpp"
 
 #elif defined(__IBMCPP__) || defined(_AIX)
 // IBM
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/aix.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/aix.hpp"
 
 #elif defined(__amigaos__)
 // AmigaOS
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/amigaos.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/amigaos.hpp"
 
 #elif defined(__QNXNTO__)
 // QNX:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/qnxnto.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/qnxnto.hpp"
 
 #elif defined(__VXWORKS__)
 // vxWorks:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/vxworks.hpp"
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vxworks.hpp"
 
 #elif defined(__SYMBIAN32__) 
 // Symbian: 
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/symbian.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/symbian.hpp" 
 
 #elif defined(_CRAYC)
 // Cray:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/cray.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cray.hpp" 
 
 #elif defined(__VMS) 
 // VMS:
-#  define BOOST_PLATFORM_CONFIG "ndnboost/config/platform/vms.hpp" 
+#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vms.hpp" 
 #else
 
 #  if defined(unix) \
@@ -85,15 +85,15 @@
 
    // generic unix platform:
 
-#  ifndef BOOST_HAS_UNISTD_H
-#     define BOOST_HAS_UNISTD_H
+#  ifndef NDNBOOST_HAS_UNISTD_H
+#     define NDNBOOST_HAS_UNISTD_H
 #  endif
 
 #  include <ndnboost/config/posix_features.hpp>
 
 #  endif
 
-#  if defined (BOOST_ASSERT_CONFIG)
+#  if defined (NDNBOOST_ASSERT_CONFIG)
       // this must come last - generate an error if we don't
       // recognise the platform:
 #     error "Unknown platform - please configure and report the results to boost.org"
diff --git a/include/ndnboost/config/select_stdlib_config.hpp b/include/ndnboost/config/select_stdlib_config.hpp
index f0167a3..c7caede 100644
--- a/include/ndnboost/config/select_stdlib_config.hpp
+++ b/include/ndnboost/config/select_stdlib_config.hpp
@@ -9,7 +9,7 @@
 
 //  See http://www.boost.org for most recent version.
 
-// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
+// locate which std lib we are using and define NDNBOOST_STDLIB_CONFIG as needed:
 
 // First include <cstddef> to determine if some version of STLport is in use as the std lib
 // (do not rely on this header being included since users can short-circuit this header 
@@ -24,7 +24,7 @@
 // STLPort library; this _must_ come first, otherwise since
 // STLport typically sits on top of some other library, we
 // can end up detecting that first rather than STLport:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/stlport.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/stlport.hpp"
 
 #else
 
@@ -38,41 +38,41 @@
 
 #if defined(__LIBCOMO__)
 // Comeau STL:
-#define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcomo.hpp"
+#define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcomo.hpp"
 
 #elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
 // Rogue Wave library:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/roguewave.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/roguewave.hpp"
 
 #elif defined(_LIBCPP_VERSION)
 // libc++
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcpp.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcpp.hpp"
 
 #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
 // GNU libstdc++ 3
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libstdcpp3.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libstdcpp3.hpp"
 
 #elif defined(__STL_CONFIG_H)
 // generic SGI STL
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/sgi.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/sgi.hpp"
 
 #elif defined(__MSL_CPP__)
 // MSL standard lib:
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/msl.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/msl.hpp"
 
 #elif defined(__IBMCPP__)
 // take the default VACPP std lib
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/vacpp.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/vacpp.hpp"
 
 #elif defined(MSIPL_COMPILE_H)
 // Modena C++ standard library
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/modena.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/modena.hpp"
 
 #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
 // Dinkumware Library (this has to appear after any possible replacement libraries):
-#  define BOOST_STDLIB_CONFIG "ndnboost/config/stdlib/dinkumware.hpp"
+#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/dinkumware.hpp"
 
-#elif defined (BOOST_ASSERT_CONFIG)
+#elif defined (NDNBOOST_ASSERT_CONFIG)
 // this must come last - generate an error if we don't
 // recognise the library:
 #  error "Unknown standard library - please configure and report the results to boost.org"
diff --git a/include/ndnboost/config/stdlib/dinkumware.hpp b/include/ndnboost/config/stdlib/dinkumware.hpp
index ec7b985..06ce536 100644
--- a/include/ndnboost/config/stdlib/dinkumware.hpp
+++ b/include/ndnboost/config/stdlib/dinkumware.hpp
@@ -23,43 +23,43 @@
    // full dinkumware 3.06 and above
    // fully conforming provided the compiler supports it:
 #  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
 #  endif
-#  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
-#     define BOOST_NO_STD_ALLOCATOR
+#  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(NDNBOOST_MSVC)
+#     define NDNBOOST_NO_STD_ALLOCATOR
 #  endif
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
+#  if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
       // if this lib version is set up for vc6 then there is no std::use_facet:
-#     define BOOST_NO_STD_USE_FACET
-#     define BOOST_HAS_TWO_ARG_USE_FACET
+#     define NDNBOOST_NO_STD_USE_FACET
+#     define NDNBOOST_HAS_TWO_ARG_USE_FACET
       // C lib functions aren't in namespace std either:
-#     define BOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
       // and nor is <exception>
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#     define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 #  endif
 // There's no numeric_limits<long long> support unless _LONGLONG is defined:
 #  if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #  endif
 // 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
 // and no <slist> at all
 #else
-#  define BOOST_MSVC_STD_ITERATOR 1
-#  define BOOST_NO_STD_ITERATOR
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STDC_NAMESPACE
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#  define BOOST_HAS_MACRO_USE_FACET
+#  define NDNBOOST_MSVC_STD_ITERATOR 1
+#  define NDNBOOST_NO_STD_ITERATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STDC_NAMESPACE
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#  define NDNBOOST_HAS_MACRO_USE_FACET
 #  ifndef _CPPLIB_VER
       // Updated Dinkum library defines this, and provides
       // its own min and max definitions, as does MTA version.
 #     ifndef __MTA__ 
-#        define BOOST_NO_STD_MIN_MAX
+#        define NDNBOOST_NO_STD_MIN_MAX
 #     endif
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #  endif
 #endif
 
@@ -69,7 +69,7 @@
 // of vc7.1 (Intel and Comeau):
 //
 #if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
-#  define BOOST_STD_EXTENSION_NAMESPACE stdext
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE stdext
 #endif
 
 
@@ -77,72 +77,72 @@
    // if we're using a dinkum lib that's
    // been configured for VC6/7 then there is
    // no iterator traits (true even for icl)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 #if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
 // Intel C++ chokes over any non-trivial use of <locale>
 // this may be an overly restrictive define, but regex fails without it:
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 #include <typeinfo>
 #if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
-#  define BOOST_NO_STD_TYPEINFO    
+#  define NDNBOOST_NO_STD_TYPEINFO    
 #endif  
 
 //  C++0x headers implemented in 520 (as shipped by Microsoft)
 //
 #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_SMART_PTR
 #endif
 
-#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
-#  define BOOST_NO_CXX11_HDR_TUPLE
+#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
 #endif
 
 //  C++0x headers implemented in 540 (as shipped by Microsoft)
 //
 #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 #endif
 
 //
 //  C++0x headers not yet (fully) implemented:
 //
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
 
 #ifdef _CPPLIB_VER
-#  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
+#  define NDNBOOST_DINKUMWARE_STDLIB _CPPLIB_VER
 #else
-#  define BOOST_DINKUMWARE_STDLIB 1
+#  define NDNBOOST_DINKUMWARE_STDLIB 1
 #endif
 
 #ifdef _CPPLIB_VER
-#  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
+#  define NDNBOOST_STDLIB "Dinkumware standard library version " NDNBOOST_STRINGIZE(_CPPLIB_VER)
 #else
-#  define BOOST_STDLIB "Dinkumware standard library version 1.x"
+#  define NDNBOOST_STDLIB "Dinkumware standard library version 1.x"
 #endif
 
 
diff --git a/include/ndnboost/config/stdlib/libcomo.hpp b/include/ndnboost/config/stdlib/libcomo.hpp
index c3fe9f0..0f20a16 100644
--- a/include/ndnboost/config/stdlib/libcomo.hpp
+++ b/include/ndnboost/config/stdlib/libcomo.hpp
@@ -21,43 +21,43 @@
 // NOTE: versions of libcomo prior to beta28 have octal version numbering,
 // e.g. version 25 is 21 (dec)
 #if __LIBCOMO_VERSION__ <= 22
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 #if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
-#define BOOST_NO_SWPRINTF
+#define NDNBOOST_NO_SWPRINTF
 #endif
 
 #if __LIBCOMO_VERSION__ >= 31
-#  define BOOST_HAS_HASH
-#  define BOOST_HAS_SLIST
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_HAS_SLIST
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
 //
 // Intrinsic type_traits support.
@@ -65,8 +65,8 @@
 // has intrinsic compiler support with SGI's compilers.
 // Whatever map SGI style type traits to boost equivalents:
 //
-#define BOOST_HAS_SGI_TYPE_TRAITS
+#define NDNBOOST_HAS_SGI_TYPE_TRAITS
 
-#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
+#define NDNBOOST_STDLIB "Comeau standard library " NDNBOOST_STRINGIZE(__LIBCOMO_VERSION__)
 
 
diff --git a/include/ndnboost/config/stdlib/libcpp.hpp b/include/ndnboost/config/stdlib/libcpp.hpp
index 3d57440..a4ee678 100644
--- a/include/ndnboost/config/stdlib/libcpp.hpp
+++ b/include/ndnboost/config/stdlib/libcpp.hpp
@@ -15,23 +15,23 @@
 #  endif
 #endif
 
-#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
+#define NDNBOOST_STDLIB "libc++ version " NDNBOOST_STRINGIZE(_LIBCPP_VERSION)
 
-#define BOOST_HAS_THREADS
+#define NDNBOOST_HAS_THREADS
 
 #ifdef _LIBCPP_HAS_NO_VARIADICS
-#    define BOOST_NO_CXX11_HDR_TUPLE
+#    define NDNBOOST_NO_CXX11_HDR_TUPLE
 #endif
 
 //
 // These appear to be unusable/incomplete so far:
 //
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 // libc++ uses a non-standard messages_base
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_NO_STD_MESSAGES
 
 //  --- end ---
diff --git a/include/ndnboost/config/stdlib/libstdcpp3.hpp b/include/ndnboost/config/stdlib/libstdcpp3.hpp
index 976ab76..6a0d990 100644
--- a/include/ndnboost/config/stdlib/libstdcpp3.hpp
+++ b/include/ndnboost/config/stdlib/libstdcpp3.hpp
@@ -9,19 +9,19 @@
 //  config for libstdc++ v3
 //  not much to go in here:
 
-#define BOOST_GNU_STDLIB 1
+#define NDNBOOST_GNU_STDLIB 1
 
 #ifdef __GLIBCXX__
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
+#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCXX__)
 #else
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
+#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCPP__)
 #endif
 
 #if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCTYPE
+#  define NDNBOOST_NO_STD_WSTRING
+#  define NDNBOOST_NO_STD_WSTREAMBUF
 #endif
 
 #if defined(__osf__) && !defined(_REENTRANT) \
@@ -42,29 +42,29 @@
       // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
       // while others do not...
       //
-#     define BOOST_HAS_THREADS
+#     define NDNBOOST_HAS_THREADS
 #  else
-#     define BOOST_DISABLE_THREADS
+#     define NDNBOOST_DISABLE_THREADS
 #  endif
 #elif defined(__GLIBCPP__) \
         && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
         && !defined(_GLIBCPP__PTHREADS)
    // disable thread support if the std lib was built single threaded:
-#  define BOOST_DISABLE_THREADS
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 #if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
 // linux on arm apparently doesn't define _REENTRANT
 // so just turn on threading support whenever the std lib is thread safe:
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 #if !defined(_GLIBCPP_USE_LONG_LONG) \
     && !defined(_GLIBCXX_USE_LONG_LONG)\
-    && defined(BOOST_HAS_LONG_LONG)
+    && defined(NDNBOOST_HAS_LONG_LONG)
 // May have been set by compiler/*.hpp, but "long long" without library
 // support is useless.
-#  undef BOOST_HAS_LONG_LONG
+#  undef NDNBOOST_HAS_LONG_LONG
 #endif
 
 // Apple doesn't seem to reliably defined a *unix* macro
@@ -78,16 +78,16 @@
 #endif
 
 #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-#  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
-#  define BOOST_HAS_SLIST
-#  define BOOST_HAS_HASH
-#  define BOOST_SLIST_HEADER <ext/slist>
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+#  define NDNBOOST_HAS_SLIST
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_SLIST_HEADER <ext/slist>
 # if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
-#   define BOOST_HASH_SET_HEADER <ext/hash_set>
-#   define BOOST_HASH_MAP_HEADER <ext/hash_map>
+#   define NDNBOOST_HASH_SET_HEADER <ext/hash_set>
+#   define NDNBOOST_HASH_MAP_HEADER <ext/hash_map>
 # else
-#   define BOOST_HASH_SET_HEADER <backward/hash_set>
-#   define BOOST_HASH_MAP_HEADER <backward/hash_map>
+#   define NDNBOOST_HASH_SET_HEADER <backward/hash_set>
+#   define NDNBOOST_HASH_MAP_HEADER <backward/hash_map>
 # endif
 #endif
 
@@ -106,46 +106,46 @@
 //  C++0x headers in GCC 4.3.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 #endif
 
 //  C++0x headers in GCC 4.4.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
 #else
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
-#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS 
+#  define NDNBOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
+#  define NDNBOOST_HAS_TR1_COMPLEX_OVERLOADS 
 #endif
 
-#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_MUTEX
+#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(NDNBOOST_NO_CXX11_HDR_MUTEX))
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
 #endif
 
 //  C++0x features in GCC 4.5.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
 #endif
 
 //  C++0x features in GCC 4.6.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
 #endif
 
 //  C++0x features in GCC 4.7.0 and later
@@ -153,14 +153,14 @@
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
 // Note that although <chrono> existed prior to 4.7, "stead_clock" is spelled "monotonic_clock"
 // so 4.7.0 is the first truely conforming one.
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
 #endif
 //  C++0x headers not yet (fully!) implemented
 //
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 //  --- end ---
diff --git a/include/ndnboost/config/stdlib/modena.hpp b/include/ndnboost/config/stdlib/modena.hpp
index ec29e89..96fb952 100644
--- a/include/ndnboost/config/stdlib/modena.hpp
+++ b/include/ndnboost/config/stdlib/modena.hpp
@@ -15,40 +15,40 @@
 #endif
 
 #ifndef MSIPL_NL_TYPES
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 #ifndef MSIPL_WCHART
-#define BOOST_NO_STD_WSTRING
+#define NDNBOOST_NO_STD_WSTRING
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Modena C++ standard library"
+#define NDNBOOST_STDLIB "Modena C++ standard library"
 
 
 
diff --git a/include/ndnboost/config/stdlib/msl.hpp b/include/ndnboost/config/stdlib/msl.hpp
index 444d620..e692e2f 100644
--- a/include/ndnboost/config/stdlib/msl.hpp
+++ b/include/ndnboost/config/stdlib/msl.hpp
@@ -16,63 +16,63 @@
 #endif
 
 #if __MSL_CPP__ >= 0x6000  // Pro 6
-#  define BOOST_HAS_HASH
-#  define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
+#  define NDNBOOST_HAS_HASH
+#  define NDNBOOST_STD_EXTENSION_NAMESPACE Metrowerks
 #endif
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_SLIST
 
 #if __MSL_CPP__ < 0x6209
-#  define BOOST_NO_STD_MESSAGES
+#  define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 // check C lib version for <stdint.h>
 #include <cstddef>
 
 #if defined(__MSL__) && (__MSL__ >= 0x5000)
-#  define BOOST_HAS_STDINT_H
+#  define NDNBOOST_HAS_STDINT_H
 #  if !defined(__PALMOS_TRAPS__)
-#    define BOOST_HAS_UNISTD_H
+#    define NDNBOOST_HAS_UNISTD_H
 #  endif
    // boilerplate code:
 #  include <ndnboost/config/posix_features.hpp>
 #endif
 
 #if defined(_MWMT) || _MSL_THREADSAFE
-#  define BOOST_HAS_THREADS
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 #ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_TWO_ARG_USE_FACET
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
+#define NDNBOOST_STDLIB "Metrowerks Standard Library version " NDNBOOST_STRINGIZE(__MSL_CPP__)
 
 
 
diff --git a/include/ndnboost/config/stdlib/roguewave.hpp b/include/ndnboost/config/stdlib/roguewave.hpp
index 0571076..955c491 100644
--- a/include/ndnboost/config/stdlib/roguewave.hpp
+++ b/include/ndnboost/config/stdlib/roguewave.hpp
@@ -10,7 +10,7 @@
 
 //  Rogue Wave std lib:
 
-#define BOOST_RW_STDLIB 1 
+#define NDNBOOST_RW_STDLIB 1 
 
 #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
 #  include <ndnboost/config/no_tr1/utility.hpp>
@@ -22,22 +22,22 @@
 // figure out a consistent version number:
 //
 #ifndef _RWSTD_VER
-#  define BOOST_RWSTD_VER 0x010000
+#  define NDNBOOST_RWSTD_VER 0x010000
 #elif _RWSTD_VER < 0x010000
-#  define BOOST_RWSTD_VER (_RWSTD_VER << 8)
+#  define NDNBOOST_RWSTD_VER (_RWSTD_VER << 8)
 #else
-#  define BOOST_RWSTD_VER _RWSTD_VER
+#  define NDNBOOST_RWSTD_VER _RWSTD_VER
 #endif
 
 #ifndef _RWSTD_VER
-#  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
+#  define NDNBOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
 #elif _RWSTD_VER < 0x04010200
- #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+ #  define NDNBOOST_STDLIB "Rogue Wave standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
 #else
 #  ifdef _RWSTD_VER_STR
-#    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
+#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
 #  else
-#    define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
 #  endif
 #endif
 
@@ -46,53 +46,53 @@
 // does not have compile time constants, even though specializations of that
 // template do:
 //
-#if BOOST_RWSTD_VER < 0x020200
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#if NDNBOOST_RWSTD_VER < 0x020200
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 #endif
 
 // Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
 // library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
-#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#if NDNBOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
+#  define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 # endif
 
 //
 // Borland version of numeric_limits lacks __int64 specialisation:
 //
 #ifdef __BORLANDC__
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #endif
 
 //
 // No std::iterator if it can't figure out default template args:
 //
-#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_STD_ITERATOR
+#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (NDNBOOST_RWSTD_VER < 0x020000)
+#  define NDNBOOST_NO_STD_ITERATOR
 #endif
 
 //
 // No iterator traits without partial specialization:
 //
 #if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
 // Prior to version 2.0, std::auto_ptr was buggy, and there were no
 // new-style iostreams, and no conformant std::allocator:
 //
-#if (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_AUTO_PTR
-#  define BOOST_NO_STRINGSTREAM
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STD_LOCALE
+#if (NDNBOOST_RWSTD_VER < 0x020000)
+#  define NDNBOOST_NO_AUTO_PTR
+#  define NDNBOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // No template iterator constructors without member template support:
 //
 #if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 #endif
 
 //
@@ -101,38 +101,38 @@
 // on HP aCC systems even though the allocator is in fact broken):
 //
 #if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
 // If we have a std::locale, we still may not have std::use_facet:
 //
-#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
+#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(NDNBOOST_NO_STD_LOCALE)
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_TWO_ARG_USE_FACET
 #endif
 
 //
 // There's no std::distance prior to version 2, or without
 // partial specialization support:
 //
-#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
-    #define BOOST_NO_STD_DISTANCE
+#if (NDNBOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
+    #define NDNBOOST_NO_STD_DISTANCE
 #endif
 
 //
 // Some versions of the rogue wave library don't have assignable
 // OutputIterators:
 //
-#if BOOST_RWSTD_VER < 0x020100
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#if NDNBOOST_RWSTD_VER < 0x020100
+#  define NDNBOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
 #endif
 
 //
-// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
+// Disable NDNBOOST_HAS_LONG_LONG when the library has no support for it.
 //
-#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
-#  undef BOOST_HAS_LONG_LONG
+#if !defined(_RWSTD_LONG_LONG) && defined(NDNBOOST_HAS_LONG_LONG)
+#  undef NDNBOOST_HAS_LONG_LONG
 #endif
 
 //
@@ -145,7 +145,7 @@
 //
 // Define macros specific to RW V2.2 on HP-UX
 //
-#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
+#if defined(__HP_aCC) && (NDNBOOST_RWSTD_VER == 0x02020100)
 #  ifndef __HP_TC1_MAKE_PAIR
 #    define __HP_TC1_MAKE_PAIR
 #  endif
@@ -155,32 +155,32 @@
 #endif
 
 #if _RWSTD_VER < 0x05000000
-#  define BOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
 #endif
 // type_traits header is incomplete:
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
 //
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
diff --git a/include/ndnboost/config/stdlib/sgi.hpp b/include/ndnboost/config/stdlib/sgi.hpp
index 8ac5d03..be14f4e 100644
--- a/include/ndnboost/config/stdlib/sgi.hpp
+++ b/include/ndnboost/config/stdlib/sgi.hpp
@@ -20,7 +20,7 @@
 // No std::iterator traits without partial specialisation:
 //
 #if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
@@ -37,7 +37,7 @@
    // than by running the configure script).
    // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
    // have <sstream>.
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 // Apple doesn't seem to reliably defined a *unix* macro
@@ -56,21 +56,21 @@
 // incorrect assumption in some cases):
 //
 #if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // Original native SGI streams have non-standard std::messages facet:
 //
 #if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STD_LOCALE
 #endif
 
 //
 // SGI's new iostreams have missing "const" in messages<>::open
 //
 #if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_MESSAGES
+#  define NDNBOOST_NO_STD_MESSAGES
 #endif
 
 //
@@ -78,15 +78,15 @@
 // without member templates:
 //
 #if !defined(__STL_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
 // We always have SGI style hash_set, hash_map, and slist:
 //
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_HASH
+#define NDNBOOST_HAS_SLIST
 
 //
 // If this is GNU libstdc++2, then no <limits> and no std::wstring:
@@ -94,10 +94,10 @@
 #if (defined(__GNUC__) && (__GNUC__ < 3))
 #  include <string>
 #  if defined(__BASTRING__)
-#     define BOOST_NO_LIMITS
+#     define NDNBOOST_NO_LIMITS
 // Note: <ndnboost/limits.hpp> will provide compile-time constants
-#     undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_STD_WSTRING
+#     undef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#     define NDNBOOST_NO_STD_WSTRING
 #  endif
 #endif
 
@@ -105,7 +105,7 @@
 // There is no standard iterator unless we have namespace support:
 //
 #if !defined(__STL_USE_NAMESPACES)
-#  define BOOST_NO_STD_ITERATOR
+#  define NDNBOOST_NO_STD_ITERATOR
 #endif
 
 //
@@ -114,35 +114,35 @@
 // has intrinsic compiler support with SGI's compilers.
 // Whatever map SGI style type traits to boost equivalents:
 //
-#define BOOST_HAS_SGI_TYPE_TRAITS
+#define NDNBOOST_HAS_SGI_TYPE_TRAITS
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "SGI standard library"
+#define NDNBOOST_STDLIB "SGI standard library"
 
 
 
diff --git a/include/ndnboost/config/stdlib/stlport.hpp b/include/ndnboost/config/stdlib/stlport.hpp
index 649267a..05dd719 100644
--- a/include/ndnboost/config/stdlib/stlport.hpp
+++ b/include/ndnboost/config/stdlib/stlport.hpp
@@ -27,11 +27,11 @@
 #endif
 
 //
-// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// __STL_STATIC_CONST_INIT_BUG implies NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 // for versions prior to 4.1(beta)
 //
 #if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 #endif
 
 //
@@ -39,22 +39,22 @@
 // std::iterator traits:
 //
 #if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
-#  define BOOST_NO_STD_ITERATOR_TRAITS
+#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #endif
 
 //
 // No new style iostreams on GCC without STLport's iostreams enabled:
 //
 #if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 //
 // No new iostreams implies no std::locale, and no std::stringstream:
 //
 #if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
-#  define BOOST_NO_STRINGSTREAM
+#  define NDNBOOST_NO_STD_LOCALE
+#  define NDNBOOST_NO_STRINGSTREAM
 #endif
 
 //
@@ -62,38 +62,38 @@
 // then the io stream facets are not available in namespace std::
 //
 #ifdef _STLPORT_VERSION
-#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
+#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(NDNBOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
+#     define NDNBOOST_NO_STD_LOCALE
 #  endif
 #else
-#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
+#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(NDNBOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
+#     define NDNBOOST_NO_STD_LOCALE
 #  endif
 #endif
 
 #if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
-#  define BOOST_HAS_TR1_UNORDERED_SET
-#  define BOOST_HAS_TR1_UNORDERED_MAP
+#  define NDNBOOST_HAS_TR1_UNORDERED_SET
+#  define NDNBOOST_HAS_TR1_UNORDERED_MAP
 #endif
 //
 // Without member template support enabled, their are no template
 // iterate constructors, and no std::allocator:
 //
 #if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 //
 // however we always have at least a partial allocator:
 //
-#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 
 #if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
-#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-#  define BOOST_NO_STD_ALLOCATOR
+#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC <= 1300)
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
 //
@@ -101,11 +101,11 @@
 // the support for the relevant specilazations of std:: templates.
 //
 #if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
-#  ifndef  BOOST_NO_STD_WSTRING
-#     define BOOST_NO_STD_WSTRING
+#  ifndef  NDNBOOST_NO_STD_WSTRING
+#     define NDNBOOST_NO_STD_WSTRING
 #  endif
-#  ifndef  BOOST_NO_STD_WSTREAMBUF
-#     define BOOST_NO_STD_WSTREAMBUF
+#  ifndef  NDNBOOST_NO_STD_WSTREAMBUF
+#     define NDNBOOST_NO_STD_WSTREAMBUF
 #  endif
 #endif
 
@@ -113,26 +113,26 @@
 // We always have SGI style hash_set, hash_map, and slist:
 //
 #ifndef _STLP_NO_EXTENSIONS
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
+#define NDNBOOST_HAS_HASH
+#define NDNBOOST_HAS_SLIST
 #endif
 
 //
 // STLport does a good job of importing names into namespace std::,
-// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
+// but doesn't always get them all, define NDNBOOST_NO_STDC_NAMESPACE, since our
 // workaround does not conflict with STLports:
 //
 //
 // Harold Howe says:
-// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
+// Borland switched to STLport in BCB6. Defining NDNBOOST_NO_STDC_NAMESPACE with
 // BCB6 does cause problems. If we detect C++ Builder, then don't define 
-// BOOST_NO_STDC_NAMESPACE
+// NDNBOOST_NO_STDC_NAMESPACE
 //
 #if !defined(__BORLANDC__) && !defined(__DMC__)
 //
 // If STLport is using it's own namespace, and the real names are in
 // the global namespace, then we duplicate STLport's using declarations
-// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
+// (by defining NDNBOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
 // necessarily import all the names we need into namespace std::
 // 
 #  if (defined(__STL_IMPORT_VENDOR_CSTD) \
@@ -140,8 +140,8 @@
          || defined(_STLP_IMPORT_VENDOR_CSTD) \
          || defined(_STLP_USE_OWN_NAMESPACE)) \
       && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-#     define BOOST_NO_STDC_NAMESPACE
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
+#     define NDNBOOST_NO_STDC_NAMESPACE
+#     define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
 #  endif
 #elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
 // STLport doesn't import std::abs correctly:
@@ -164,18 +164,18 @@
 // std::use_facet may be non-standard, uses a class instead:
 //
 #if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_STLP_USE_FACET
+#  define NDNBOOST_NO_STD_USE_FACET
+#  define NDNBOOST_HAS_STLP_USE_FACET
 #endif
 
 //
 // If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
-// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 
+// only if NDNBOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 
 // into std:: ourselves).
 //
-#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
+#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(NDNBOOST_NO_STDC_NAMESPACE)
+#  define NDNBOOST_NO_CWCHAR
+#  define NDNBOOST_NO_CWCTYPE
 #endif
 
 //
@@ -184,8 +184,8 @@
 // well (we would be missing required specializations otherwise).
 //
 #if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
-#  undef  BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_INTRINSIC_WCHAR_T
+#  undef  NDNBOOST_NO_INTRINSIC_WCHAR_T
+#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
 #endif
 
 //
@@ -193,7 +193,7 @@
 // hashtables and the like:
 //
 #if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
-#  undef BOOST_HAS_HASH
+#  undef NDNBOOST_HAS_HASH
 #endif
 
 //
@@ -201,38 +201,38 @@
 //
 #if defined(__GNUC__) && (__GNUC__ < 3)
 #  include <algorithm> // for std::min and std::max
-#  define BOOST_USING_STD_MIN() ((void)0)
-#  define BOOST_USING_STD_MAX() ((void)0)
+#  define NDNBOOST_USING_STD_MIN() ((void)0)
+#  define NDNBOOST_USING_STD_MAX() ((void)0)
 namespace ndnboost { using std::min; using std::max; }
 #endif
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
+#define NDNBOOST_STDLIB "STLPort standard library version " NDNBOOST_STRINGIZE(__SGI_STL_PORT)
 
 
 
diff --git a/include/ndnboost/config/stdlib/vacpp.hpp b/include/ndnboost/config/stdlib/vacpp.hpp
index 9d16946..d4719b7 100644
--- a/include/ndnboost/config/stdlib/vacpp.hpp
+++ b/include/ndnboost/config/stdlib/vacpp.hpp
@@ -6,11 +6,11 @@
 //  See http://www.boost.org for most recent version.
 
 #if __IBMCPP__ <= 501
-#  define BOOST_NO_STD_ALLOCATOR
+#  define NDNBOOST_NO_STD_ALLOCATOR
 #endif
 
-#define BOOST_HAS_MACRO_USE_FACET
-#define BOOST_NO_STD_MESSAGES
+#define NDNBOOST_HAS_MACRO_USE_FACET
+#define NDNBOOST_NO_STD_MESSAGES
 
 // Apple doesn't seem to reliably defined a *unix* macro
 #if !defined(CYGWIN) && (  defined(__unix__)  \
@@ -24,31 +24,31 @@
 
 //  C++0x headers not yet implemented
 //
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#  define NDNBOOST_NO_CXX11_HDR_ARRAY
+#  define NDNBOOST_NO_CXX11_HDR_CHRONO
+#  define NDNBOOST_NO_CXX11_HDR_CODECVT
+#  define NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+#  define NDNBOOST_NO_CXX11_HDR_FORWARD_LIST
+#  define NDNBOOST_NO_CXX11_HDR_FUTURE
+#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_CXX11_HDR_MUTEX
+#  define NDNBOOST_NO_CXX11_HDR_RANDOM
+#  define NDNBOOST_NO_CXX11_HDR_RATIO
+#  define NDNBOOST_NO_CXX11_HDR_REGEX
+#  define NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR
+#  define NDNBOOST_NO_CXX11_HDR_THREAD
+#  define NDNBOOST_NO_CXX11_HDR_TUPLE
+#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
+#  define NDNBOOST_NO_CXX11_HDR_TYPEINDEX
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+#  define NDNBOOST_NO_CXX11_HDR_UNORDERED_SET
+#  define NDNBOOST_NO_CXX11_NUMERIC_LIMITS
+#  define NDNBOOST_NO_CXX11_ALLOCATOR
+#  define NDNBOOST_NO_CXX11_ATOMIC_SMART_PTR
+#  define NDNBOOST_NO_CXX11_SMART_PTR
+#  define NDNBOOST_NO_CXX11_HDR_FUNCTIONAL
 
-#define BOOST_STDLIB "Visual Age default standard library"
+#define NDNBOOST_STDLIB "Visual Age default standard library"
 
 
 
diff --git a/include/ndnboost/config/suffix.hpp b/include/ndnboost/config/suffix.hpp
index 9f89029..7dfd7dc 100644
--- a/include/ndnboost/config/suffix.hpp
+++ b/include/ndnboost/config/suffix.hpp
@@ -23,8 +23,8 @@
 //  It should contain boilerplate code only - no compiler specific
 //  code unless it is unavoidable - no changes unless unavoidable.
 
-#ifndef BOOST_CONFIG_SUFFIX_HPP
-#define BOOST_CONFIG_SUFFIX_HPP
+#ifndef NDNBOOST_CONFIG_SUFFIX_HPP
+#define NDNBOOST_CONFIG_SUFFIX_HPP
 
 #if defined(__GNUC__) && (__GNUC__ >= 4)
 //
@@ -37,14 +37,14 @@
 //
 // ensure that visibility macros are always defined, thus symplifying use
 //
-#ifndef BOOST_SYMBOL_EXPORT
-# define BOOST_SYMBOL_EXPORT
+#ifndef NDNBOOST_SYMBOL_EXPORT
+# define NDNBOOST_SYMBOL_EXPORT
 #endif
-#ifndef BOOST_SYMBOL_IMPORT
-# define BOOST_SYMBOL_IMPORT
+#ifndef NDNBOOST_SYMBOL_IMPORT
+# define NDNBOOST_SYMBOL_IMPORT
 #endif
-#ifndef BOOST_SYMBOL_VISIBLE
-# define BOOST_SYMBOL_VISIBLE
+#ifndef NDNBOOST_SYMBOL_VISIBLE
+# define NDNBOOST_SYMBOL_VISIBLE
 #endif
 
 //
@@ -53,181 +53,181 @@
 // remember that since these just declare a bunch of macros, there should be
 // no namespace issues from this.
 //
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG)                                              \
-   && !defined(BOOST_MSVC) && !defined(__BORLANDC__)
+#if !defined(NDNBOOST_HAS_LONG_LONG) && !defined(NDNBOOST_NO_LONG_LONG)                                              \
+   && !defined(NDNBOOST_MSVC) && !defined(__BORLANDC__)
 # include <limits.h>
 # if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-#   define BOOST_HAS_LONG_LONG
+#   define NDNBOOST_HAS_LONG_LONG
 # else
-#   define BOOST_NO_LONG_LONG
+#   define NDNBOOST_NO_LONG_LONG
 # endif
 #endif
 
 // GCC 3.x will clean up all of those nasty macro definitions that
-// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
+// NDNBOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
 // it under GCC 3.x.
-#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
-#  undef BOOST_NO_CTYPE_FUNCTIONS
+#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(NDNBOOST_NO_CTYPE_FUNCTIONS)
+#  undef NDNBOOST_NO_CTYPE_FUNCTIONS
 #endif
 
 //
 // Assume any extensions are in namespace std:: unless stated otherwise:
 //
-#  ifndef BOOST_STD_EXTENSION_NAMESPACE
-#    define BOOST_STD_EXTENSION_NAMESPACE std
+#  ifndef NDNBOOST_STD_EXTENSION_NAMESPACE
+#    define NDNBOOST_STD_EXTENSION_NAMESPACE std
 #  endif
 
 //
 // If cv-qualified specializations are not allowed, then neither are cv-void ones:
 //
-#  if defined(BOOST_NO_CV_SPECIALIZATIONS) \
-      && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-#     define BOOST_NO_CV_VOID_SPECIALIZATIONS
+#  if defined(NDNBOOST_NO_CV_SPECIALIZATIONS) \
+      && !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
+#     define NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
 #  endif
 
 //
 // If there is no numeric_limits template, then it can't have any compile time
 // constants either!
 //
-#  if defined(BOOST_NO_LIMITS) \
-      && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
-#     define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#     define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#  if defined(NDNBOOST_NO_LIMITS) \
+      && !defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
+#     define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
+#     define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 #  endif
 
 //
 // if there is no long long then there is no specialisation
 // for numeric_limits<long long> either:
 //
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#if !defined(NDNBOOST_HAS_LONG_LONG) && !defined(NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS)
+#  define NDNBOOST_NO_LONG_LONG_NUMERIC_LIMITS
 #endif
 
 //
 // if there is no __int64 then there is no specialisation
 // for numeric_limits<__int64> either:
 //
-#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#if !defined(NDNBOOST_HAS_MS_INT64) && !defined(NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS)
+#  define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
 #endif
 
 //
 // if member templates are supported then so is the
 // VC6 subset of member templates:
 //
-#  if !defined(BOOST_NO_MEMBER_TEMPLATES) \
-       && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-#     define BOOST_MSVC6_MEMBER_TEMPLATES
+#  if !defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+       && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
+#     define NDNBOOST_MSVC6_MEMBER_TEMPLATES
 #  endif
 
 //
 // Without partial specialization, can't test for partial specialisation bugs:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
-#     define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
+#     define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
 #  endif
 
 //
 // Without partial specialization, we can't have array-type partial specialisations:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-#     define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+#     define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 #  endif
 
 //
 // Without partial specialization, std::iterator_traits can't work:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-#     define BOOST_NO_STD_ITERATOR_TRAITS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)
+#     define NDNBOOST_NO_STD_ITERATOR_TRAITS
 #  endif
 
 //
 // Without partial specialization, partial 
 // specialization with default args won't work either:
 //
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
-#     define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#  if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+      && !defined(NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
+#     define NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 #  endif
 
 //
 // Without member template support, we can't have template constructors
 // in the standard library either:
 //
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
-#     define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#  if defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
+#     define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 #  endif
 
 //
 // Without member template support, we can't have a conforming
 // std::allocator template either:
 //
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_STD_ALLOCATOR)
-#     define BOOST_NO_STD_ALLOCATOR
+#  if defined(NDNBOOST_NO_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES) \
+      && !defined(NDNBOOST_NO_STD_ALLOCATOR)
+#     define NDNBOOST_NO_STD_ALLOCATOR
 #  endif
 
 //
 // without ADL support then using declarations will break ADL as well:
 //
-#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#if defined(NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+#  define NDNBOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #endif
 
 //
 // Without typeid support we have no dynamic RTTI either:
 //
-#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
+#if defined(NDNBOOST_NO_TYPEID) && !defined(NDNBOOST_NO_RTTI)
+#  define NDNBOOST_NO_RTTI
 #endif
 
 //
 // If we have a standard allocator, then we have a partial one as well:
 //
-#if !defined(BOOST_NO_STD_ALLOCATOR)
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#if !defined(NDNBOOST_NO_STD_ALLOCATOR)
+#  define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
 #endif
 
 //
 // We can't have a working std::use_facet if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
-#     define BOOST_NO_STD_USE_FACET
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_USE_FACET)
+#     define NDNBOOST_NO_STD_USE_FACET
 #  endif
 
 //
 // We can't have a std::messages facet if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
-#     define BOOST_NO_STD_MESSAGES
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_MESSAGES)
+#     define NDNBOOST_NO_STD_MESSAGES
 #  endif
 
 //
 // We can't have a working std::wstreambuf if there is no std::locale:
 //
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
-#     define BOOST_NO_STD_WSTREAMBUF
+#  if defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_NO_STD_WSTREAMBUF)
+#     define NDNBOOST_NO_STD_WSTREAMBUF
 #  endif
 
 //
 // We can't have a <cwctype> if there is no <cwchar>:
 //
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
-#     define BOOST_NO_CWCTYPE
+#  if defined(NDNBOOST_NO_CWCHAR) && !defined(NDNBOOST_NO_CWCTYPE)
+#     define NDNBOOST_NO_CWCTYPE
 #  endif
 
 //
 // We can't have a swprintf if there is no <cwchar>:
 //
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
-#     define BOOST_NO_SWPRINTF
+#  if defined(NDNBOOST_NO_CWCHAR) && !defined(NDNBOOST_NO_SWPRINTF)
+#     define NDNBOOST_NO_SWPRINTF
 #  endif
 
 //
@@ -235,9 +235,9 @@
 // threading support also, unless there is some other
 // thread API enabled:
 //
-#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
-   && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
-#  define BOOST_DISABLE_THREADS
+#if defined(NDNBOOST_DISABLE_WIN32) && defined(_WIN32) \
+   && !defined(NDNBOOST_DISABLE_THREADS) && !defined(NDNBOOST_HAS_PTHREADS)
+#  define NDNBOOST_DISABLE_THREADS
 #endif
 
 //
@@ -248,37 +248,37 @@
 //
 #if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
     || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
-    && !defined(BOOST_HAS_THREADS)
-#  define BOOST_HAS_THREADS
+    && !defined(NDNBOOST_HAS_THREADS)
+#  define NDNBOOST_HAS_THREADS
 #endif
 
 //
-// Turn threading support off if BOOST_DISABLE_THREADS is defined:
+// Turn threading support off if NDNBOOST_DISABLE_THREADS is defined:
 //
-#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
-#  undef BOOST_HAS_THREADS
+#if defined(NDNBOOST_DISABLE_THREADS) && defined(NDNBOOST_HAS_THREADS)
+#  undef NDNBOOST_HAS_THREADS
 #endif
 
 //
 // Turn threading support off if we don't recognise the threading API:
 //
-#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
-      && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
-      && !defined(BOOST_HAS_MPTASKS)
-#  undef BOOST_HAS_THREADS
+#if defined(NDNBOOST_HAS_THREADS) && !defined(NDNBOOST_HAS_PTHREADS)\
+      && !defined(NDNBOOST_HAS_WINTHREADS) && !defined(NDNBOOST_HAS_BETHREADS)\
+      && !defined(NDNBOOST_HAS_MPTASKS)
+#  undef NDNBOOST_HAS_THREADS
 #endif
 
 //
 // Turn threading detail macros off if we don't (want to) use threading
 //
-#ifndef BOOST_HAS_THREADS
-#  undef BOOST_HAS_PTHREADS
-#  undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  undef BOOST_HAS_PTHREAD_YIELD
-#  undef BOOST_HAS_PTHREAD_DELAY_NP
-#  undef BOOST_HAS_WINTHREADS
-#  undef BOOST_HAS_BETHREADS
-#  undef BOOST_HAS_MPTASKS
+#ifndef NDNBOOST_HAS_THREADS
+#  undef NDNBOOST_HAS_PTHREADS
+#  undef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#  undef NDNBOOST_HAS_PTHREAD_YIELD
+#  undef NDNBOOST_HAS_PTHREAD_DELAY_NP
+#  undef NDNBOOST_HAS_WINTHREADS
+#  undef NDNBOOST_HAS_BETHREADS
+#  undef NDNBOOST_HAS_MPTASKS
 #endif
 
 //
@@ -286,60 +286,60 @@
 // have a <stdint.h>:
 //
 #  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-#     define BOOST_HAS_STDINT_H
-#     ifndef BOOST_HAS_LOG1P
-#        define BOOST_HAS_LOG1P
+#     define NDNBOOST_HAS_STDINT_H
+#     ifndef NDNBOOST_HAS_LOG1P
+#        define NDNBOOST_HAS_LOG1P
 #     endif
-#     ifndef BOOST_HAS_EXPM1
-#        define BOOST_HAS_EXPM1
+#     ifndef NDNBOOST_HAS_EXPM1
+#        define NDNBOOST_HAS_EXPM1
 #     endif
 #  endif
 
 //
-// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
+// Define NDNBOOST_NO_SLIST and NDNBOOST_NO_HASH if required.
 // Note that this is for backwards compatibility only.
 //
-#  if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
-#     define BOOST_NO_SLIST
+#  if !defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_NO_SLIST)
+#     define NDNBOOST_NO_SLIST
 #  endif
 
-#  if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
-#     define BOOST_NO_HASH
+#  if !defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_NO_HASH)
+#     define NDNBOOST_NO_HASH
 #  endif
 
 //
-// Set BOOST_SLIST_HEADER if not set already:
+// Set NDNBOOST_SLIST_HEADER if not set already:
 //
-#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
-#  define BOOST_SLIST_HEADER <slist>
+#if defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_SLIST_HEADER)
+#  define NDNBOOST_SLIST_HEADER <slist>
 #endif
 
 //
-// Set BOOST_HASH_SET_HEADER if not set already:
+// Set NDNBOOST_HASH_SET_HEADER if not set already:
 //
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
-#  define BOOST_HASH_SET_HEADER <hash_set>
+#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_SET_HEADER)
+#  define NDNBOOST_HASH_SET_HEADER <hash_set>
 #endif
 
 //
-// Set BOOST_HASH_MAP_HEADER if not set already:
+// Set NDNBOOST_HASH_MAP_HEADER if not set already:
 //
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
-#  define BOOST_HASH_MAP_HEADER <hash_map>
+#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_MAP_HEADER)
+#  define NDNBOOST_HASH_MAP_HEADER <hash_map>
 #endif
 
-//  BOOST_HAS_ABI_HEADERS
+//  NDNBOOST_HAS_ABI_HEADERS
 //  This macro gets set if we have headers that fix the ABI,
 //  and prevent ODR violations when linking to external libraries:
-#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
-#  define BOOST_HAS_ABI_HEADERS
+#if defined(NDNBOOST_ABI_PREFIX) && defined(NDNBOOST_ABI_SUFFIX) && !defined(NDNBOOST_HAS_ABI_HEADERS)
+#  define NDNBOOST_HAS_ABI_HEADERS
 #endif
 
-#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
-#  undef BOOST_HAS_ABI_HEADERS
+#if defined(NDNBOOST_HAS_ABI_HEADERS) && defined(NDNBOOST_DISABLE_ABI_HEADERS)
+#  undef NDNBOOST_HAS_ABI_HEADERS
 #endif
 
-//  BOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
+//  NDNBOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
 //  Because std::size_t usage is so common, even in boost headers which do not
 //  otherwise use the C library, the <cstddef> workaround is included here so
 //  that ugly workaround code need not appear in many other boost headers.
@@ -348,53 +348,53 @@
 //  works as expected with standard conforming compilers.  The resulting
 //  double inclusion of <cstddef> is harmless.
 
-# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
+# if defined(NDNBOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
 #   include <cstddef>
     namespace std { using ::ptrdiff_t; using ::size_t; }
 # endif
 
 //  Workaround for the unfortunate min/max macros defined by some platform headers
 
-#define BOOST_PREVENT_MACRO_SUBSTITUTION
+#define NDNBOOST_PREVENT_MACRO_SUBSTITUTION
 
-#ifndef BOOST_USING_STD_MIN
-#  define BOOST_USING_STD_MIN() using std::min
+#ifndef NDNBOOST_USING_STD_MIN
+#  define NDNBOOST_USING_STD_MIN() using std::min
 #endif
 
-#ifndef BOOST_USING_STD_MAX
-#  define BOOST_USING_STD_MAX() using std::max
+#ifndef NDNBOOST_USING_STD_MAX
+#  define NDNBOOST_USING_STD_MAX() using std::max
 #endif
 
-//  BOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
+//  NDNBOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
 
-#  if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
+#  if defined(NDNBOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
 
 namespace std {
   template <class _Tp>
-  inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+  inline const _Tp& min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
     return __b < __a ? __b : __a;
   }
   template <class _Tp>
-  inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+  inline const _Tp& max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
     return  __a < __b ? __b : __a;
   }
 }
 
 #  endif
 
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
+// NDNBOOST_STATIC_CONSTANT workaround --------------------------------------- //
 // On compilers which don't allow in-class initialization of static integral
 // constant members, we must use enums as a workaround if we want the constants
 // to be available at compile-time. This macro gives us a convenient way to
 // declare such constants.
 
-#  ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#       define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
+#  ifdef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#       define NDNBOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
 #  else
-#     define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
+#     define NDNBOOST_STATIC_CONSTANT(type, assignment) static const type assignment
 #  endif
 
-// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
+// NDNBOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
 // When the standard library does not have a conforming std::use_facet there
 // are various workarounds available, but they differ from library to library.
 // The same problem occurs with has_facet.
@@ -403,27 +403,27 @@
 //    replace
 //       std::use_facet<Type>(loc);
 //    with
-//       BOOST_USE_FACET(Type, loc);
-//    Note do not add a std:: prefix to the front of BOOST_USE_FACET!
-//  Use for BOOST_HAS_FACET is analogous.
+//       NDNBOOST_USE_FACET(Type, loc);
+//    Note do not add a std:: prefix to the front of NDNBOOST_USE_FACET!
+//  Use for NDNBOOST_HAS_FACET is analogous.
 
-#if defined(BOOST_NO_STD_USE_FACET)
-#  ifdef BOOST_HAS_TWO_ARG_USE_FACET
-#     define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
-#  elif defined(BOOST_HAS_MACRO_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
-#     define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
-#  elif defined(BOOST_HAS_STLP_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+#if defined(NDNBOOST_NO_STD_USE_FACET)
+#  ifdef NDNBOOST_HAS_TWO_ARG_USE_FACET
+#     define NDNBOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
+#     define NDNBOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
+#  elif defined(NDNBOOST_HAS_MACRO_USE_FACET)
+#     define NDNBOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
+#     define NDNBOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
+#  elif defined(NDNBOOST_HAS_STLP_USE_FACET)
+#     define NDNBOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
+#     define NDNBOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 #  endif
 #else
-#  define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-#  define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+#  define NDNBOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
+#  define NDNBOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 #endif
 
-// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
+// NDNBOOST_NESTED_TEMPLATE workaround ------------------------------------------//
 // Member templates are supported by some compilers even though they can't use
 // the A::template member<U> syntax, as a workaround replace:
 //
@@ -431,26 +431,26 @@
 //
 // with:
 //
-// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
+// typedef typename A::NDNBOOST_NESTED_TEMPLATE rebind<U> binder;
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#  define BOOST_NESTED_TEMPLATE template
+#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#  define NDNBOOST_NESTED_TEMPLATE template
 #else
-#  define BOOST_NESTED_TEMPLATE
+#  define NDNBOOST_NESTED_TEMPLATE
 #endif
 
-// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
-// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// NDNBOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
+// Normally evaluates to nothing, unless NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
 // is defined, in which case it evaluates to return x; Use when you have a return
 // statement that can never be reached.
 
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#  define BOOST_UNREACHABLE_RETURN(x) return x;
+#ifdef NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
+#  define NDNBOOST_UNREACHABLE_RETURN(x) return x;
 #else
-#  define BOOST_UNREACHABLE_RETURN(x)
+#  define NDNBOOST_UNREACHABLE_RETURN(x)
 #endif
 
-// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
+// NDNBOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
 //
 // Some compilers don't support the use of `typename' for dependent
 // types in deduced contexts, e.g.
@@ -459,18 +459,18 @@
 //                                  ^^^^^^^^
 // Replace these declarations with:
 //
-//     template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
+//     template <class T> void f(T, NDNBOOST_DEDUCED_TYPENAME T::type);
 
-#ifndef BOOST_NO_DEDUCED_TYPENAME
-#  define BOOST_DEDUCED_TYPENAME typename
+#ifndef NDNBOOST_NO_DEDUCED_TYPENAME
+#  define NDNBOOST_DEDUCED_TYPENAME typename
 #else
-#  define BOOST_DEDUCED_TYPENAME
+#  define NDNBOOST_DEDUCED_TYPENAME
 #endif
 
-#ifndef BOOST_NO_TYPENAME_WITH_CTOR
-#  define BOOST_CTOR_TYPENAME typename
+#ifndef NDNBOOST_NO_TYPENAME_WITH_CTOR
+#  define NDNBOOST_CTOR_TYPENAME typename
 #else
-#  define BOOST_CTOR_TYPENAME
+#  define NDNBOOST_CTOR_TYPENAME
 #endif
 
 // long long workaround ------------------------------------------//
@@ -478,7 +478,7 @@
 // but it's use may generate either warnings (with -ansi), or errors
 // (with -pedantic -ansi) unless it's use is prefixed by __extension__
 //
-#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
+#if defined(NDNBOOST_HAS_LONG_LONG) && defined(__cplusplus)
 namespace ndnboost{
 #  ifdef __GNUC__
    __extension__ typedef long long long_long_type;
@@ -490,7 +490,7 @@
 }
 #endif
 // same again for __int128:
-#if defined(BOOST_HAS_INT128) && defined(__cplusplus)
+#if defined(NDNBOOST_HAS_INT128) && defined(__cplusplus)
 namespace ndnboost{
 #  ifdef __GNUC__
    __extension__ typedef __int128 int128_type;
@@ -502,7 +502,7 @@
 }
 #endif
 
-// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
+// NDNBOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
 //
 // Some compilers have problems with function templates whose template
 // parameters don't appear in the function parameter list (basically
@@ -537,52 +537,52 @@
 // To fix it, write
 //
 //   template <int n>
-//   void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
+//   void f(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
 //
 //   template <typename T>
-//   void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
+//   void g(NDNBOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
 //
 
 
-#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
+#if defined(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
 
 #  include "ndnboost/type.hpp"
 #  include "ndnboost/non_type.hpp"
 
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)              ndnboost::type<t>* = 0
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)         ndnboost::type<t>*
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)       ndnboost::non_type<t, v>* = 0
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)              ndnboost::type<t>* = 0
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)         ndnboost::type<t>*
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)       ndnboost::non_type<t, v>* = 0
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  ndnboost::non_type<t, v>*
 
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)        \
-             , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)   \
-             , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
-             , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)    \
-             , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)        \
+             , NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)   \
+             , NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
+             , NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)    \
+             , NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 #else
 
 // no workaround needed: expand to nothing
 
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+#  define NDNBOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 
 
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif // defined NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 
-// When BOOST_NO_STD_TYPEINFO is defined, we can just import
+// When NDNBOOST_NO_STD_TYPEINFO is defined, we can just import
 // the global definition into std namespace:
-#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
+#if defined(NDNBOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
 #include <typeinfo>
 namespace std{ using ::type_info; }
 #endif
@@ -590,166 +590,166 @@
 // ---------------------------------------------------------------------------//
 
 //
-// Helper macro BOOST_STRINGIZE:
+// Helper macro NDNBOOST_STRINGIZE:
 // Converts the parameter X to a string after macro replacement
 // on X has been performed.
 //
-#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#define BOOST_DO_STRINGIZE(X) #X
+#define NDNBOOST_STRINGIZE(X) NDNBOOST_DO_STRINGIZE(X)
+#define NDNBOOST_DO_STRINGIZE(X) #X
 
 //
-// Helper macro BOOST_JOIN:
+// Helper macro NDNBOOST_JOIN:
 // The following piece of macro magic joins the two
 // arguments together, even when one of the arguments is
 // itself a macro (see 16.3.1 in C++ standard).  The key
 // is that macro expansion of macro arguments does not
-// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
+// occur in NDNBOOST_DO_JOIN2 but does in NDNBOOST_DO_JOIN.
 //
-#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
-#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
-#define BOOST_DO_JOIN2( X, Y ) X##Y
+#define NDNBOOST_JOIN( X, Y ) NDNBOOST_DO_JOIN( X, Y )
+#define NDNBOOST_DO_JOIN( X, Y ) NDNBOOST_DO_JOIN2(X,Y)
+#define NDNBOOST_DO_JOIN2( X, Y ) X##Y
 
 //
 // Set some default values for compiler/library/platform names.
 // These are for debugging config setup only:
 //
-#  ifndef BOOST_COMPILER
-#     define BOOST_COMPILER "Unknown ISO C++ Compiler"
+#  ifndef NDNBOOST_COMPILER
+#     define NDNBOOST_COMPILER "Unknown ISO C++ Compiler"
 #  endif
-#  ifndef BOOST_STDLIB
-#     define BOOST_STDLIB "Unknown ISO standard library"
+#  ifndef NDNBOOST_STDLIB
+#     define NDNBOOST_STDLIB "Unknown ISO standard library"
 #  endif
-#  ifndef BOOST_PLATFORM
+#  ifndef NDNBOOST_PLATFORM
 #     if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
          || defined(_POSIX_SOURCE)
-#        define BOOST_PLATFORM "Generic Unix"
+#        define NDNBOOST_PLATFORM "Generic Unix"
 #     else
-#        define BOOST_PLATFORM "Unknown"
+#        define NDNBOOST_PLATFORM "Unknown"
 #     endif
 #  endif
 
 //
 // Set some default values GPU support
 //
-#  ifndef BOOST_GPU_ENABLED
-#  define BOOST_GPU_ENABLED 
+#  ifndef NDNBOOST_GPU_ENABLED
+#  define NDNBOOST_GPU_ENABLED 
 #  endif
 
-// BOOST_FORCEINLINE ---------------------------------------------//
+// NDNBOOST_FORCEINLINE ---------------------------------------------//
 // Macro to use in place of 'inline' to force a function to be inline
-#if !defined(BOOST_FORCEINLINE)
+#if !defined(NDNBOOST_FORCEINLINE)
 #  if defined(_MSC_VER)
-#    define BOOST_FORCEINLINE __forceinline
+#    define NDNBOOST_FORCEINLINE __forceinline
 #  elif defined(__GNUC__) && __GNUC__ > 3
      // Clang also defines __GNUC__ (as 4)
-#    define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
+#    define NDNBOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
 #  else
-#    define BOOST_FORCEINLINE inline
+#    define NDNBOOST_FORCEINLINE inline
 #  endif
 #endif
 
 //
-// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
+// Set NDNBOOST_NO_DECLTYPE_N3276 when NDNBOOST_NO_DECLTYPE is defined
 //
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
-#define	BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_NO_CXX11_DECLTYPE_N3276)
+#define	NDNBOOST_NO_CXX11_DECLTYPE_N3276 NDNBOOST_NO_CXX11_DECLTYPE
 #endif
 
 //  -------------------- Deprecated macros for 1.50 ---------------------------
 //  These will go away in a future release
 
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
-//           instead of BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
-# ifndef BOOST_NO_CXX11_STD_UNORDERED
-#  define BOOST_NO_CXX11_STD_UNORDERED
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_SET or NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP
+//           instead of NDNBOOST_NO_STD_UNORDERED
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (NDNBOOST_NO_CXX11_HDR_UNORDERED_SET)
+# ifndef NDNBOOST_NO_CXX11_STD_UNORDERED
+#  define NDNBOOST_NO_CXX11_STD_UNORDERED
 # endif
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
-#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
-#  define BOOST_NO_INITIALIZER_LISTS
+//  Use NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of NDNBOOST_NO_INITIALIZER_LISTS
+#if defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(NDNBOOST_NO_INITIALIZER_LISTS)
+#  define NDNBOOST_NO_INITIALIZER_LISTS
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
-#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
-#  define BOOST_NO_0X_HDR_ARRAY
+//  Use NDNBOOST_NO_CXX11_HDR_ARRAY instead of NDNBOOST_NO_0X_HDR_ARRAY
+#if defined(NDNBOOST_NO_CXX11_HDR_ARRAY) && !defined(NDNBOOST_NO_0X_HDR_ARRAY)
+#  define NDNBOOST_NO_0X_HDR_ARRAY
 #endif
-//  Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
-#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
-#  define BOOST_NO_0X_HDR_CHRONO
+//  Use NDNBOOST_NO_CXX11_HDR_CHRONO instead of NDNBOOST_NO_0X_HDR_CHRONO
+#if defined(NDNBOOST_NO_CXX11_HDR_CHRONO) && !defined(NDNBOOST_NO_0X_HDR_CHRONO)
+#  define NDNBOOST_NO_0X_HDR_CHRONO
 #endif
-//  Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
-#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
-#  define BOOST_NO_0X_HDR_CODECVT
+//  Use NDNBOOST_NO_CXX11_HDR_CODECVT instead of NDNBOOST_NO_0X_HDR_CODECVT
+#if defined(NDNBOOST_NO_CXX11_HDR_CODECVT) && !defined(NDNBOOST_NO_0X_HDR_CODECVT)
+#  define NDNBOOST_NO_0X_HDR_CODECVT
 #endif
-//  Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
-#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
-#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE
+//  Use NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE
+#if defined(NDNBOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE)
+#  define NDNBOOST_NO_0X_HDR_CONDITION_VARIABLE
 #endif
-//  Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
-#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
-#  define BOOST_NO_0X_HDR_FORWARD_LIST
+//  Use NDNBOOST_NO_CXX11_HDR_FORWARD_LIST instead of NDNBOOST_NO_0X_HDR_FORWARD_LIST
+#if defined(NDNBOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(NDNBOOST_NO_0X_HDR_FORWARD_LIST)
+#  define NDNBOOST_NO_0X_HDR_FORWARD_LIST
 #endif
-//  Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
-#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
-#  define BOOST_NO_0X_HDR_FUTURE
+//  Use NDNBOOST_NO_CXX11_HDR_FUTURE instead of NDNBOOST_NO_0X_HDR_FUTURE
+#if defined(NDNBOOST_NO_CXX11_HDR_FUTURE) && !defined(NDNBOOST_NO_0X_HDR_FUTURE)
+#  define NDNBOOST_NO_0X_HDR_FUTURE
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST 
-//  instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
-#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
-#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
+//  Use NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST 
+//  instead of NDNBOOST_NO_0X_HDR_INITIALIZER_LIST or NDNBOOST_NO_INITIALIZER_LISTS
+#ifdef NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
+# ifndef NDNBOOST_NO_0X_HDR_INITIALIZER_LIST
+#  define NDNBOOST_NO_0X_HDR_INITIALIZER_LIST
 # endif
-# ifndef BOOST_NO_INITIALIZER_LISTS
-#  define BOOST_NO_INITIALIZER_LISTS
+# ifndef NDNBOOST_NO_INITIALIZER_LISTS
+#  define NDNBOOST_NO_INITIALIZER_LISTS
 # endif
 #endif
 
-//  Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
-#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
-#  define BOOST_NO_0X_HDR_MUTEX
+//  Use NDNBOOST_NO_CXX11_HDR_MUTEX instead of NDNBOOST_NO_0X_HDR_MUTEX
+#if defined(NDNBOOST_NO_CXX11_HDR_MUTEX) && !defined(NDNBOOST_NO_0X_HDR_MUTEX)
+#  define NDNBOOST_NO_0X_HDR_MUTEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
-#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
-#  define BOOST_NO_0X_HDR_RANDOM
+//  Use NDNBOOST_NO_CXX11_HDR_RANDOM instead of NDNBOOST_NO_0X_HDR_RANDOM
+#if defined(NDNBOOST_NO_CXX11_HDR_RANDOM) && !defined(NDNBOOST_NO_0X_HDR_RANDOM)
+#  define NDNBOOST_NO_0X_HDR_RANDOM
 #endif
-//  Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
-#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
-#  define BOOST_NO_0X_HDR_RATIO
+//  Use NDNBOOST_NO_CXX11_HDR_RATIO instead of NDNBOOST_NO_0X_HDR_RATIO
+#if defined(NDNBOOST_NO_CXX11_HDR_RATIO) && !defined(NDNBOOST_NO_0X_HDR_RATIO)
+#  define NDNBOOST_NO_0X_HDR_RATIO
 #endif
-//  Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
-#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
-#  define BOOST_NO_0X_HDR_REGEX
+//  Use NDNBOOST_NO_CXX11_HDR_REGEX instead of NDNBOOST_NO_0X_HDR_REGEX
+#if defined(NDNBOOST_NO_CXX11_HDR_REGEX) && !defined(NDNBOOST_NO_0X_HDR_REGEX)
+#  define NDNBOOST_NO_0X_HDR_REGEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
-#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
-#  define BOOST_NO_0X_HDR_SYSTEM_ERROR
+//  Use NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of NDNBOOST_NO_0X_HDR_SYSTEM_ERROR
+#if defined(NDNBOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(NDNBOOST_NO_0X_HDR_SYSTEM_ERROR)
+#  define NDNBOOST_NO_0X_HDR_SYSTEM_ERROR
 #endif
-//  Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
-#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
-#  define BOOST_NO_0X_HDR_THREAD
+//  Use NDNBOOST_NO_CXX11_HDR_THREAD instead of NDNBOOST_NO_0X_HDR_THREAD
+#if defined(NDNBOOST_NO_CXX11_HDR_THREAD) && !defined(NDNBOOST_NO_0X_HDR_THREAD)
+#  define NDNBOOST_NO_0X_HDR_THREAD
 #endif
-//  Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
-#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
-#  define BOOST_NO_0X_HDR_TUPLE
+//  Use NDNBOOST_NO_CXX11_HDR_TUPLE instead of NDNBOOST_NO_0X_HDR_TUPLE
+#if defined(NDNBOOST_NO_CXX11_HDR_TUPLE) && !defined(NDNBOOST_NO_0X_HDR_TUPLE)
+#  define NDNBOOST_NO_0X_HDR_TUPLE
 #endif
-//  Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
-#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
-#  define BOOST_NO_0X_HDR_TYPE_TRAITS
+//  Use NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS instead of NDNBOOST_NO_0X_HDR_TYPE_TRAITS
+#if defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(NDNBOOST_NO_0X_HDR_TYPE_TRAITS)
+#  define NDNBOOST_NO_0X_HDR_TYPE_TRAITS
 #endif
-//  Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
-#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
-#  define BOOST_NO_0X_HDR_TYPEINDEX
+//  Use NDNBOOST_NO_CXX11_HDR_TYPEINDEX instead of NDNBOOST_NO_0X_HDR_TYPEINDEX
+#if defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(NDNBOOST_NO_0X_HDR_TYPEINDEX)
+#  define NDNBOOST_NO_0X_HDR_TYPEINDEX
 #endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
-#  define BOOST_NO_0X_HDR_UNORDERED_MAP
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP instead of NDNBOOST_NO_0X_HDR_UNORDERED_MAP
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(NDNBOOST_NO_0X_HDR_UNORDERED_MAP)
+#  define NDNBOOST_NO_0X_HDR_UNORDERED_MAP
 #endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
-#  define BOOST_NO_0X_HDR_UNORDERED_SET
+//  Use NDNBOOST_NO_CXX11_HDR_UNORDERED_SET instead of NDNBOOST_NO_0X_HDR_UNORDERED_SET
+#if defined(NDNBOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(NDNBOOST_NO_0X_HDR_UNORDERED_SET)
+#  define NDNBOOST_NO_0X_HDR_UNORDERED_SET
 #endif
 
 //  ------------------ End of deprecated macros for 1.50 ---------------------------
@@ -757,176 +757,176 @@
 //  -------------------- Deprecated macros for 1.51 ---------------------------
 //  These will go away in a future release
 
-//  Use     BOOST_NO_CXX11_AUTO_DECLARATIONS instead of   BOOST_NO_AUTO_DECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
-#  define BOOST_NO_AUTO_DECLARATIONS
+//  Use     NDNBOOST_NO_CXX11_AUTO_DECLARATIONS instead of   NDNBOOST_NO_AUTO_DECLARATIONS
+#if defined(NDNBOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(NDNBOOST_NO_AUTO_DECLARATIONS)
+#  define NDNBOOST_NO_AUTO_DECLARATIONS
 #endif
-//  Use     BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   BOOST_NO_AUTO_MULTIDECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
-#  define BOOST_NO_AUTO_MULTIDECLARATIONS
+//  Use     NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   NDNBOOST_NO_AUTO_MULTIDECLARATIONS
+#if defined(NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(NDNBOOST_NO_AUTO_MULTIDECLARATIONS)
+#  define NDNBOOST_NO_AUTO_MULTIDECLARATIONS
 #endif
-//  Use     BOOST_NO_CXX11_CHAR16_T instead of   BOOST_NO_CHAR16_T
-#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
-#  define BOOST_NO_CHAR16_T
+//  Use     NDNBOOST_NO_CXX11_CHAR16_T instead of   NDNBOOST_NO_CHAR16_T
+#if defined(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CHAR16_T)
+#  define NDNBOOST_NO_CHAR16_T
 #endif
-//  Use     BOOST_NO_CXX11_CHAR32_T instead of   BOOST_NO_CHAR32_T
-#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
-#  define BOOST_NO_CHAR32_T
+//  Use     NDNBOOST_NO_CXX11_CHAR32_T instead of   NDNBOOST_NO_CHAR32_T
+#if defined(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CHAR32_T)
+#  define NDNBOOST_NO_CHAR32_T
 #endif
-//  Use     BOOST_NO_CXX11_TEMPLATE_ALIASES instead of   BOOST_NO_TEMPLATE_ALIASES
-#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
-#  define BOOST_NO_TEMPLATE_ALIASES
+//  Use     NDNBOOST_NO_CXX11_TEMPLATE_ALIASES instead of   NDNBOOST_NO_TEMPLATE_ALIASES
+#if defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(NDNBOOST_NO_TEMPLATE_ALIASES)
+#  define NDNBOOST_NO_TEMPLATE_ALIASES
 #endif
-//  Use     BOOST_NO_CXX11_CONSTEXPR instead of   BOOST_NO_CONSTEXPR
-#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
-#  define BOOST_NO_CONSTEXPR
+//  Use     NDNBOOST_NO_CXX11_CONSTEXPR instead of   NDNBOOST_NO_CONSTEXPR
+#if defined(NDNBOOST_NO_CXX11_CONSTEXPR) && !defined(NDNBOOST_NO_CONSTEXPR)
+#  define NDNBOOST_NO_CONSTEXPR
 #endif
-//  Use     BOOST_NO_CXX11_DECLTYPE_N3276 instead of   BOOST_NO_DECLTYPE_N3276
-#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
-#  define BOOST_NO_DECLTYPE_N3276
+//  Use     NDNBOOST_NO_CXX11_DECLTYPE_N3276 instead of   NDNBOOST_NO_DECLTYPE_N3276
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE_N3276) && !defined(NDNBOOST_NO_DECLTYPE_N3276)
+#  define NDNBOOST_NO_DECLTYPE_N3276
 #endif
-//  Use     BOOST_NO_CXX11_DECLTYPE instead of   BOOST_NO_DECLTYPE
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
-#  define BOOST_NO_DECLTYPE
+//  Use     NDNBOOST_NO_CXX11_DECLTYPE instead of   NDNBOOST_NO_DECLTYPE
+#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_NO_DECLTYPE)
+#  define NDNBOOST_NO_DECLTYPE
 #endif
-//  Use     BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   BOOST_NO_DEFAULTED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
-#  define BOOST_NO_DEFAULTED_FUNCTIONS
+//  Use     NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   NDNBOOST_NO_DEFAULTED_FUNCTIONS
+#if defined(NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(NDNBOOST_NO_DEFAULTED_FUNCTIONS)
+#  define NDNBOOST_NO_DEFAULTED_FUNCTIONS
 #endif
-//  Use     BOOST_NO_CXX11_DELETED_FUNCTIONS instead of   BOOST_NO_DELETED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
-#  define BOOST_NO_DELETED_FUNCTIONS
+//  Use     NDNBOOST_NO_CXX11_DELETED_FUNCTIONS instead of   NDNBOOST_NO_DELETED_FUNCTIONS
+#if defined(NDNBOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(NDNBOOST_NO_DELETED_FUNCTIONS)
+#  define NDNBOOST_NO_DELETED_FUNCTIONS
 #endif
-//  Use     BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
-#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
-#  define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+//  Use     NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#if defined(NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
+#  define NDNBOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 #endif
-//  Use     BOOST_NO_CXX11_EXTERN_TEMPLATE instead of   BOOST_NO_EXTERN_TEMPLATE
-#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
-#  define BOOST_NO_EXTERN_TEMPLATE
+//  Use     NDNBOOST_NO_CXX11_EXTERN_TEMPLATE instead of   NDNBOOST_NO_EXTERN_TEMPLATE
+#if defined(NDNBOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(NDNBOOST_NO_EXTERN_TEMPLATE)
+#  define NDNBOOST_NO_EXTERN_TEMPLATE
 #endif
-//  Use     BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
-#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+//  Use     NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#if defined(NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+#  define NDNBOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #endif
-//  Use     BOOST_NO_CXX11_LAMBDAS instead of   BOOST_NO_LAMBDAS
-#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
-#  define BOOST_NO_LAMBDAS
+//  Use     NDNBOOST_NO_CXX11_LAMBDAS instead of   NDNBOOST_NO_LAMBDAS
+#if defined(NDNBOOST_NO_CXX11_LAMBDAS) && !defined(NDNBOOST_NO_LAMBDAS)
+#  define NDNBOOST_NO_LAMBDAS
 #endif
-//  Use     BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
-#  define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+//  Use     NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#if defined(NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
+#  define NDNBOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #endif
-//  Use     BOOST_NO_CXX11_NOEXCEPT instead of   BOOST_NO_NOEXCEPT
-#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
-#  define BOOST_NO_NOEXCEPT
+//  Use     NDNBOOST_NO_CXX11_NOEXCEPT instead of   NDNBOOST_NO_NOEXCEPT
+#if defined(NDNBOOST_NO_CXX11_NOEXCEPT) && !defined(NDNBOOST_NO_NOEXCEPT)
+#  define NDNBOOST_NO_NOEXCEPT
 #endif
-//  Use     BOOST_NO_CXX11_NULLPTR instead of   BOOST_NO_NULLPTR
-#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
-#  define BOOST_NO_NULLPTR
+//  Use     NDNBOOST_NO_CXX11_NULLPTR instead of   NDNBOOST_NO_NULLPTR
+#if defined(NDNBOOST_NO_CXX11_NULLPTR) && !defined(NDNBOOST_NO_NULLPTR)
+#  define NDNBOOST_NO_NULLPTR
 #endif
-//  Use     BOOST_NO_CXX11_RAW_LITERALS instead of   BOOST_NO_RAW_LITERALS
-#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
-#  define BOOST_NO_RAW_LITERALS
+//  Use     NDNBOOST_NO_CXX11_RAW_LITERALS instead of   NDNBOOST_NO_RAW_LITERALS
+#if defined(NDNBOOST_NO_CXX11_RAW_LITERALS) && !defined(NDNBOOST_NO_RAW_LITERALS)
+#  define NDNBOOST_NO_RAW_LITERALS
 #endif
-//  Use     BOOST_NO_CXX11_RVALUE_REFERENCES instead of   BOOST_NO_RVALUE_REFERENCES
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
-#  define BOOST_NO_RVALUE_REFERENCES
+//  Use     NDNBOOST_NO_CXX11_RVALUE_REFERENCES instead of   NDNBOOST_NO_RVALUE_REFERENCES
+#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_RVALUE_REFERENCES)
+#  define NDNBOOST_NO_RVALUE_REFERENCES
 #endif
-//  Use     BOOST_NO_CXX11_SCOPED_ENUMS instead of   BOOST_NO_SCOPED_ENUMS
-#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
-#  define BOOST_NO_SCOPED_ENUMS
+//  Use     NDNBOOST_NO_CXX11_SCOPED_ENUMS instead of   NDNBOOST_NO_SCOPED_ENUMS
+#if defined(NDNBOOST_NO_CXX11_SCOPED_ENUMS) && !defined(NDNBOOST_NO_SCOPED_ENUMS)
+#  define NDNBOOST_NO_SCOPED_ENUMS
 #endif
-//  Use     BOOST_NO_CXX11_STATIC_ASSERT instead of   BOOST_NO_STATIC_ASSERT
-#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
-#  define BOOST_NO_STATIC_ASSERT
+//  Use     NDNBOOST_NO_CXX11_STATIC_ASSERT instead of   NDNBOOST_NO_STATIC_ASSERT
+#if defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) && !defined(NDNBOOST_NO_STATIC_ASSERT)
+#  define NDNBOOST_NO_STATIC_ASSERT
 #endif
-//  Use     BOOST_NO_CXX11_STD_UNORDERED instead of   BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
-#  define BOOST_NO_STD_UNORDERED
+//  Use     NDNBOOST_NO_CXX11_STD_UNORDERED instead of   NDNBOOST_NO_STD_UNORDERED
+#if defined(NDNBOOST_NO_CXX11_STD_UNORDERED) && !defined(NDNBOOST_NO_STD_UNORDERED)
+#  define NDNBOOST_NO_STD_UNORDERED
 #endif
-//  Use     BOOST_NO_CXX11_UNICODE_LITERALS instead of   BOOST_NO_UNICODE_LITERALS
-#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
-#  define BOOST_NO_UNICODE_LITERALS
+//  Use     NDNBOOST_NO_CXX11_UNICODE_LITERALS instead of   NDNBOOST_NO_UNICODE_LITERALS
+#if defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS) && !defined(NDNBOOST_NO_UNICODE_LITERALS)
+#  define NDNBOOST_NO_UNICODE_LITERALS
 #endif
-//  Use     BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
-#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
-#  define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+//  Use     NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#if defined(NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
+#  define NDNBOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
 #endif
-//  Use     BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   BOOST_NO_VARIADIC_TEMPLATES
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
-#  define BOOST_NO_VARIADIC_TEMPLATES
+//  Use     NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   NDNBOOST_NO_VARIADIC_TEMPLATES
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_NO_VARIADIC_TEMPLATES)
+#  define NDNBOOST_NO_VARIADIC_TEMPLATES
 #endif
-//  Use     BOOST_NO_CXX11_VARIADIC_MACROS instead of   BOOST_NO_VARIADIC_MACROS
-#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
-#  define BOOST_NO_VARIADIC_MACROS
+//  Use     NDNBOOST_NO_CXX11_VARIADIC_MACROS instead of   NDNBOOST_NO_VARIADIC_MACROS
+#if defined(NDNBOOST_NO_CXX11_VARIADIC_MACROS) && !defined(NDNBOOST_NO_VARIADIC_MACROS)
+#  define NDNBOOST_NO_VARIADIC_MACROS
 #endif
-//  Use     BOOST_NO_CXX11_NUMERIC_LIMITS instead of   BOOST_NO_NUMERIC_LIMITS_LOWEST
-#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
-#  define BOOST_NO_NUMERIC_LIMITS_LOWEST
+//  Use     NDNBOOST_NO_CXX11_NUMERIC_LIMITS instead of   NDNBOOST_NO_NUMERIC_LIMITS_LOWEST
+#if defined(NDNBOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(NDNBOOST_NO_NUMERIC_LIMITS_LOWEST)
+#  define NDNBOOST_NO_NUMERIC_LIMITS_LOWEST
 #endif
 //  ------------------ End of deprecated macros for 1.51 ---------------------------
 
 
 
 //
-// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
+// Helper macros NDNBOOST_NOEXCEPT, NDNBOOST_NOEXCEPT_IF, NDNBOOST_NOEXCEPT_EXPR
 // These aid the transition to C++11 while still supporting C++03 compilers
 //
-#ifdef BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NOEXCEPT
-#  define BOOST_NOEXCEPT_OR_NOTHROW throw()
-#  define BOOST_NOEXCEPT_IF(Predicate)
-#  define BOOST_NOEXCEPT_EXPR(Expression) false
+#ifdef NDNBOOST_NO_CXX11_NOEXCEPT
+#  define NDNBOOST_NOEXCEPT
+#  define NDNBOOST_NOEXCEPT_OR_NOTHROW throw()
+#  define NDNBOOST_NOEXCEPT_IF(Predicate)
+#  define NDNBOOST_NOEXCEPT_EXPR(Expression) false
 #else
-#  define BOOST_NOEXCEPT noexcept
-#  define BOOST_NOEXCEPT_OR_NOTHROW noexcept
-#  define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
-#  define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
+#  define NDNBOOST_NOEXCEPT noexcept
+#  define NDNBOOST_NOEXCEPT_OR_NOTHROW noexcept
+#  define NDNBOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
+#  define NDNBOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
 #endif
 //
-// Helper macro BOOST_FALLTHROUGH 
-// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended 
+// Helper macro NDNBOOST_FALLTHROUGH 
+// Fallback definition of NDNBOOST_FALLTHROUGH macro used to mark intended 
 // fall-through between case labels in a switch statement. We use a definition 
 // that requires a semicolon after it to avoid at least one type of misuse even 
 // on unsupported compilers. 
 // 
-#ifndef BOOST_FALLTHROUGH 
-#  define BOOST_FALLTHROUGH ((void)0) 
+#ifndef NDNBOOST_FALLTHROUGH 
+#  define NDNBOOST_FALLTHROUGH ((void)0) 
 #endif 
 
 //
 // constexpr workarounds
 // 
-#if defined(BOOST_NO_CXX11_CONSTEXPR)
-#define BOOST_CONSTEXPR
-#define BOOST_CONSTEXPR_OR_CONST const
+#if defined(NDNBOOST_NO_CXX11_CONSTEXPR)
+#define NDNBOOST_CONSTEXPR
+#define NDNBOOST_CONSTEXPR_OR_CONST const
 #else
-#define BOOST_CONSTEXPR constexpr
-#define BOOST_CONSTEXPR_OR_CONST constexpr
+#define NDNBOOST_CONSTEXPR constexpr
+#define NDNBOOST_CONSTEXPR_OR_CONST constexpr
 #endif
 
-#define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST
+#define NDNBOOST_STATIC_CONSTEXPR  static NDNBOOST_CONSTEXPR_OR_CONST
 
 //
-// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
+// Set NDNBOOST_HAS_STATIC_ASSERT when NDNBOOST_NO_CXX11_STATIC_ASSERT is not defined
 //
-#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
-#  define BOOST_HAS_STATIC_ASSERT
+#if !defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) && !defined(NDNBOOST_HAS_STATIC_ASSERT)
+#  define NDNBOOST_HAS_STATIC_ASSERT
 #endif
 
 //
-// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
+// Set NDNBOOST_HAS_RVALUE_REFS when NDNBOOST_NO_CXX11_RVALUE_REFERENCES is not defined
 //
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
-#define BOOST_HAS_RVALUE_REFS
+#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_HAS_RVALUE_REFS)
+#define NDNBOOST_HAS_RVALUE_REFS
 #endif
 
 //
-// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
+// Set NDNBOOST_HAS_VARIADIC_TMPL when NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
 //
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
-#define BOOST_HAS_VARIADIC_TMPL
+#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_HAS_VARIADIC_TMPL)
+#define NDNBOOST_HAS_VARIADIC_TMPL
 #endif
 
 
diff --git a/include/ndnboost/config/user.hpp b/include/ndnboost/config/user.hpp
index 2a5c15c..ce06075 100644
--- a/include/ndnboost/config/user.hpp
+++ b/include/ndnboost/config/user.hpp
@@ -14,32 +14,32 @@
 //
 
 // define this to locate a compiler config file:
-// #define BOOST_COMPILER_CONFIG <myheader>
+// #define NDNBOOST_COMPILER_CONFIG <myheader>
 
 // define this to locate a stdlib config file:
-// #define BOOST_STDLIB_CONFIG   <myheader>
+// #define NDNBOOST_STDLIB_CONFIG   <myheader>
 
 // define this to locate a platform config file:
-// #define BOOST_PLATFORM_CONFIG <myheader>
+// #define NDNBOOST_PLATFORM_CONFIG <myheader>
 
 // define this to disable compiler config,
 // use if your compiler config has nothing to set:
-// #define BOOST_NO_COMPILER_CONFIG
+// #define NDNBOOST_NO_COMPILER_CONFIG
 
 // define this to disable stdlib config,
 // use if your stdlib config has nothing to set:
-// #define BOOST_NO_STDLIB_CONFIG
+// #define NDNBOOST_NO_STDLIB_CONFIG
 
 // define this to disable platform config,
 // use if your platform config has nothing to set:
-// #define BOOST_NO_PLATFORM_CONFIG
+// #define NDNBOOST_NO_PLATFORM_CONFIG
 
 // define this to disable all config options,
 // excluding the user config.  Use if your
 // setup is fully ISO compliant, and has no
 // useful extensions, or for autoconf generated
 // setups:
-// #define BOOST_NO_CONFIG
+// #define NDNBOOST_NO_CONFIG
 
 // define this to make the config "optimistic"
 // about unknown compiler versions.  Normally
@@ -48,39 +48,39 @@
 // setting this flag, causes the config to assume
 // that unknown compiler versions are fully conformant
 // with the standard:
-// #define BOOST_STRICT_CONFIG
+// #define NDNBOOST_STRICT_CONFIG
 
 // define this to cause the config to halt compilation
 // with an #error if it encounters anything unknown --
 // either an unknown compiler version or an unknown
 // compiler/platform/library:
-// #define BOOST_ASSERT_CONFIG
+// #define NDNBOOST_ASSERT_CONFIG
 
 
 // define if you want to disable threading support, even
 // when available:
-// #define BOOST_DISABLE_THREADS
+// #define NDNBOOST_DISABLE_THREADS
 
 // define when you want to disable Win32 specific features
 // even when available:
-// #define BOOST_DISABLE_WIN32
+// #define NDNBOOST_DISABLE_WIN32
 
-// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
+// NDNBOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
 // prefix/suffix headers that normally control things like struct 
 // packing and alignment. 
-// #define BOOST_DISABLE_ABI_HEADERS
+// #define NDNBOOST_DISABLE_ABI_HEADERS
 
-// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
+// NDNBOOST_ABI_PREFIX: A prefix header to include in place of whatever
 // boost.config would normally select, any replacement should set up 
 // struct packing and alignment options as required. 
-// #define BOOST_ABI_PREFIX my-header-name
+// #define NDNBOOST_ABI_PREFIX my-header-name
 
-// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever 
+// NDNBOOST_ABI_SUFFIX: A suffix header to include in place of whatever 
 // boost.config would normally select, any replacement should undo 
 // the effects of the prefix header. 
-// #define BOOST_ABI_SUFFIX my-header-name
+// #define NDNBOOST_ABI_SUFFIX my-header-name
 
-// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, 
+// NDNBOOST_ALL_DYN_LINK: Forces all libraries that have separate source, 
 // to be linked as dll's rather than static libraries on Microsoft Windows 
 // (this macro is used to turn on __declspec(dllimport) modifiers, so that 
 // the compiler knows which symbols to look for in a dll rather than in a 
@@ -88,37 +88,37 @@
 // be statically linked (Boost.Test for example) and others which may only 
 // be dynamically linked (Boost.Threads for example), in these cases this 
 // macro has no effect.
-// #define BOOST_ALL_DYN_LINK
+// #define NDNBOOST_ALL_DYN_LINK
  
-// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll 
+// NDNBOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll 
 // rather than a static library on Microsoft Windows: replace the WHATEVER 
 // part of the macro name with the name of the library that you want to 
-// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or 
-// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) 
+// dynamically link to, for example use NDNBOOST_DATE_TIME_DYN_LINK or 
+// NDNBOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) 
 // modifiers, so that the compiler knows which symbols to look for in a dll 
 // rather than in a static library).  
 // Note that there may be some libraries that can only be statically linked 
 // (Boost.Test for example) and others which may only be dynamically linked 
 // (Boost.Threads for example), in these cases this macro is unsupported.
-// #define BOOST_WHATEVER_DYN_LINK
+// #define NDNBOOST_WHATEVER_DYN_LINK
  
-// BOOST_ALL_NO_LIB: Tells the config system not to automatically select 
+// NDNBOOST_ALL_NO_LIB: Tells the config system not to automatically select 
 // which libraries to link against.  
 // Normally if a compiler supports #pragma lib, then the correct library 
 // build variant will be automatically selected and linked against, 
 // simply by the act of including one of that library's headers.  
 // This macro turns that feature off.
-// #define BOOST_ALL_NO_LIB
+// #define NDNBOOST_ALL_NO_LIB
  
-// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically 
+// NDNBOOST_WHATEVER_NO_LIB: Tells the config system not to automatically 
 // select which library to link against for library "whatever", 
 // replace WHATEVER in the macro name with the name of the library; 
-// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.  
+// for example NDNBOOST_DATE_TIME_NO_LIB or NDNBOOST_REGEX_NO_LIB.  
 // Normally if a compiler supports #pragma lib, then the correct library 
 // build variant will be automatically selected and linked against, simply 
 // by the act of including one of that library's headers.  This macro turns 
 // that feature off.
-// #define BOOST_WHATEVER_NO_LIB
+// #define NDNBOOST_WHATEVER_NO_LIB
  
 
 
diff --git a/include/ndnboost/config/warning_disable.hpp b/include/ndnboost/config/warning_disable.hpp
index fea8e82..ef37a0a 100644
--- a/include/ndnboost/config/warning_disable.hpp
+++ b/include/ndnboost/config/warning_disable.hpp
@@ -27,8 +27,8 @@
 //  before or by this one :-(
 //
 
-#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP
-#define BOOST_CONFIG_WARNING_DISABLE_HPP
+#ifndef NDNBOOST_CONFIG_WARNING_DISABLE_HPP
+#define NDNBOOST_CONFIG_WARNING_DISABLE_HPP
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1400) 
    // Error 'function': was declared deprecated
@@ -44,4 +44,4 @@
 #  pragma warning(disable:1786)
 #endif
 
-#endif // BOOST_CONFIG_WARNING_DISABLE_HPP
+#endif // NDNBOOST_CONFIG_WARNING_DISABLE_HPP
