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")
